You are on page 1of 248

INVESTIGACIN OPERATIVA.

Teora, Ejercicios y Prcticas con Ordenador


Rosa Rodrguez Huertas Antonio Gmez Mellado
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 Deniciones 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 z
j
c
j
en la
ltima la) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.11 Otros algoritmos de programacin lineal . . . . . . . . . . . . . . . . 76
2.11.1 Mtodo de las dos fases . . . . . . . . . . . . . . . . . . . . . 77
3
4 NDICE GENERAL
2.11.2 Algoritmo revisado del Simplex (Caso maximizante) . . . . . 79
3 Dualidad en programacin lineal 85
3.1 Formas de la dualidad . . . . . . . . . . . . . . . . . . . . . . . . . . 85
3.1.1 Forma cannica maximizante de la dualidad . . . . . . . . . . 85
3.1.2 Forma estndar maximizante de la dualidad . . . . . . . . . . 88
3.1.3 Reglas para escribir el problema dual . . . . . . . . . . . . . . 91
3.1.4 Forma cannica minimizante de la dualidad . . . . . . . . . . 92
3.2 Propiedades de la relacin de dualidad . . . . . . . . . . . . . . . . . 94
3.3 Interpretacin econmica de la dualidad . . . . . . . . . . . . . . . . 105
3.4 Algoritmo Dual del Simplex. (Caso maximizante) . . . . . . . . . . . 107
4 Anlisis de sensibilidad 111
4.1 Introduccin grca . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
4.2 Cambios discretos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
4.2.1 Variacin en un coste de una variable no bsica . . . . . . . . 112
4.2.2 Variacin en un coste de una variable bsica . . . . . . . . . . 114
4.2.3 Cambios en los recursos . . . . . . . . . . . . . . . . . . . . . 116
4.2.4 Cambios en los coecientes tecnolgicos . . . . . . . . . . . . 116
4.3 Incorporacin de una nueva actividad . . . . . . . . . . . . . . . . . 117
4.4 Incorporacin de nuevas restricciones . . . . . . . . . . . . . . . . . . 118
4.5 Programacin Paramtrica . . . . . . . . . . . . . . . . . . . . . . . . 119
4.5.1 Parametrizacin de los coecientes de coste . . . . . . . . . . 119
4.5.2 Parametrizacin de los recursos . . . . . . . . . . . . . . . . . 124
5 El problema de transporte 127
5.1 Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
5.2 Planteamiento como un problema de programacin lineal . . . . . . 128
5.3 Problema no equilibrado . . . . . . . . . . . . . . . . . . . . . . . . . 129
5.4 Propiedades del problema de transporte . . . . . . . . . . . . . . . . 129
5.5 Determinacin de una solucin inicial . . . . . . . . . . . . . . . . . 129
5.5.1 Mtodo de la esquina Noroeste . . . . . . . . . . . . . . . . . 130
5.5.2 Mtodo de costo mnimo . . . . . . . . . . . . . . . . . . . . . 132
5.5.3 Mtodo de Vogel . . . . . . . . . . . . . . . . . . . . . . . . . 134
5.6 Denicin de Ciclo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
5.7 Algoritmo de transporte (forma minimizante) . . . . . . . . . . . . . 137
5.8 Soluciones degeneradas . . . . . . . . . . . . . . . . . . . . . . . . . . 141
5.9 Otras variaciones del problema de transporte . . . . . . . . . . . . . 143
5.10 El problema de transbordo . . . . . . . . . . . . . . . . . . . . . . . 144
5.11 El problema de asignacin . . . . . . . . . . . . . . . . . . . . . . . . 146
5.11.1 El algoritmo Hngaro (Forma minimizante) . . . . . . . . . . 146
5.11.2 Ejemplo de aplicacin del algoritmo Hngaro . . . . . . . . . 147
5.12 Problema de emparejamiento . . . . . . . . . . . . . . . . . . . . . . 149
5.13 Problema de planicacin de la produccin . . . . . . . . . . . . . . 150
NDICE GENERAL 5
6 Modelos de Redes 155
6.1 Redes. Conceptos bsicos . . . . . . . . . . . . . . . . . . . . . . . . 155
6.2 Caminos de longitud mnima . . . . . . . . . . . . . . . . . . . . . . 157
6.3 Algoritmos de ordenacin y de etiquetacin . . . . . . . . . . . . . . 158
6.4 Algoritmo de Dijkstra . . . . . . . . . . . . . . . . . . . . . . . . . . 161
6.5 Problema del ujo mximo . . . . . . . . . . . . . . . . . . . . . . . 163
6.6 Algoritmo de Ford-Fulkerson . . . . . . . . . . . . . . . . . . . . . . 165
6.6.1 Flujo de un corte . . . . . . . . . . . . . . . . . . . . . . . . . 165
6.6.2 Algoritmo de Ford-Fulkerson . . . . . . . . . . . . . . . . . . 166
6.7 CPM y PERT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
6.7.1 Algoritmo CPM . . . . . . . . . . . . . . . . . . . . . . . . . 171
6.7.2 El mtodo PERT . . . . . . . . . . . . . . . . . . . . . . . . . 173
7 Programacin Entera 177
7.1 Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
7.2 Algunos problemas de programacin entera . . . . . . . . . . . . . . 178
7.2.1 El problema de la mochila . . . . . . . . . . . . . . . . . . . . 178
7.2.2 Problema del viajante . . . . . . . . . . . . . . . . . . . . . . 179
7.2.3 Problema de costo jo . . . . . . . . . . . . . . . . . . . . . . 180
7.3 El algoritmo de ramicacin y acotacin . . . . . . . . . . . . . . . . 181
7.3.1 Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
7.3.2 Programacin entera mixta . . . . . . . . . . . . . . . . . . . 185
7.4 Algoritmo de corte o de Gomory . . . . . . . . . . . . . . . . . . . . 185
7.4.1 Resumen del algoritmo de Gomory . . . . . . . . . . . . . . . 188
7.5 Programacin 0-1. Algoritmo de enumeracin . . . . . . . . . . . . . 189
8 Teora de Colas 195
8.1 Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
8.1.1 Costos de los sistemas de colas . . . . . . . . . . . . . . . . . 197
8.1.2 Estructuras tpicas. . . . . . . . . . . . . . . . . . . . . . . . . 198
8.2 Terminologa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
8.2.1 Caractersticas fsicas . . . . . . . . . . . . . . . . . . . . . . 198
8.2.2 Caractersticas de funcionalidad . . . . . . . . . . . . . . . . . 200
8.2.3 Parmetros de los sistemas de colas . . . . . . . . . . . . . . 201
8.3 Modelos de llegadas y de tiempo de servicio . . . . . . . . . . . . . . 201
8.3.1 Relacin entre la distribucin de Poisson y la exponencial . . 203
8.3.2 Otra distribucin de las llegadas. La distribucin de Erlang . 204
8.3.3 Modelos de duracin de los servicios . . . . . . . . . . . . . . 205
8.4 La notacin de Kendall . . . . . . . . . . . . . . . . . . . . . . . . . 205
8.5 Estudio de una cola M/M/1 . . . . . . . . . . . . . . . . . . . . . . . 206
8.5.1 Probabilidad de que el sistema est en cierto estado . . . . . 206
8.5.2 Nmero medio de elementos en el sistema . . . . . . . . . . . 209
8.5.3 Nmero medio de elementos en cola . . . . . . . . . . . . . . 209
8.6 Teorema de Little . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
8.7 Sistemas con capacidad limitada . . . . . . . . . . . . . . . . . . . . 210
8.8 Modelo con s servidores . . . . . . . . . . . . . . . . . . . . . . . . . 213
8.8.1 Clculo de la probabilidad de los diferentes estados del sistema 213
6 NDICE GENERAL
8.8.2 Clculo de P
0
. . . . . . . . . . . . . . . . . . . . . . . . . . . 214
8.8.3 Clculo de los parmetros . . . . . . . . . . . . . . . . . . . . 215
8.8.4 Sistemas de colas de tipo M/M/s/FCFS//. Expresiones
para el caso de s servidores . . . . . . . . . . . . . . . . . . . 215
8.9 El coste de un sistema de colas . . . . . . . . . . . . . . . . . . . . . 216
9 Introduccin a la Simulacin 219
9.1 Simulacin. Generalidades . . . . . . . . . . . . . . . . . . . . . . . . 219
9.2 Un ejemplo muy sencillo . . . . . . . . . . . . . . . . . . . . . . . . . 220
9.3 Mtodo Montecarlo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
9.4 Notas histricas sobre el Mtodo Montecarlo . . . . . . . . . . . . . 224
9.5 Generacin de nmeros aleatorios . . . . . . . . . . . . . . . . . . . . 225
9.5.1 Propiedades de un buen generador de nmeros aleatorios . . 226
9.5.2 Mtodo del centro del cuadrado . . . . . . . . . . . . . . . . . 226
9.5.3 Mtodo de las congruencias . . . . . . . . . . . . . . . . . . . 226
9.6 Mtodo de la transformacin inversa . . . . . . . . . . . . . . . . . . 229
9.6.1 Mtodo de la transformacin inversa aplicado a la distribucin
exponencial . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
9.7 Simulacin de una cola M/M/1 . . . . . . . . . . . . . . . . . . . . . 230
9.7.1 Programa FORTRAN . . . . . . . . . . . . . . . . . . . . . . 233
9.8 Integracin Montecarlo. Mtodo de xito-fracaso . . . . . . . . . . . 240
9.9 Ejemplos de programas de simulacin . . . . . . . . . . . . . . . . . 242
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
2 Programacin lineal 283
2.1 Ejercicios Resueltos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
2.2 Ejercicios Propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
2.3 Soluciones de los Ejercicios Propuestos . . . . . . . . . . . . . . . . . 310
3 Dualidad en programacin lineal 315
3.1 Ejercicios Resueltos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
3.2 Ejercicios Propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
3.3 Soluciones de los Ejercicios Propuestos . . . . . . . . . . . . . . . . . 332
4 Anlisis de sensibilidad 335
4.1 Ejercicios Resueltos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
4.2 Ejercicios Propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
4.3 Soluciones de los Ejercicios Propuestos . . . . . . . . . . . . . . . . . 367
NDICE GENERAL 7
5 El Problema de transporte 371
5.1 Ejercicios Resueltos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
5.2 Ejercicios Propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
5.3 Soluciones de los Ejercicios Propuestos . . . . . . . . . . . . . . . . . 388
6 Problemas de redes 391
6.1 Ejercicios Resueltos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
6.2 Ejercicios Propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
6.3 Soluciones de los Ejercicios Propuestos . . . . . . . . . . . . . . . . . 401
7 Programacin entera 403
7.1 Ejercicios Resueltos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
7.2 Ejercicios Propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
7.3 Soluciones de los Ejercicios Propuestos . . . . . . . . . . . . . . . . . 416
8 Teora de colas 419
8.1 Ejercicios Resueltos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419
8.2 Ejercicios Propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
8.3 Soluciones de los Ejercicios Propuestos . . . . . . . . . . . . . . . . . 426
9 Introduccin a la Simulacin 427
9.1 Ejercicios resueltos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427
9.2 Ejercicios Propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
III PRCTICAS CON ORDENADOR 431
1 Programacin lineal I 433
1.1 Problema de programacin lineal con LINGO . . . . . . . . . . . . . 433
1.2 Anlisis de sensibilidad con LINGO . . . . . . . . . . . . . . . . . . . 436
1.3 Otros problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
2 Programacin lineal II 445
2.1 Comandos de salida de cheros . . . . . . . . . . . . . . . . . . . . . 445
2.2 Formato abreviado de LINGO . . . . . . . . . . . . . . . . . . . . . . 448
2.3 Recapitulacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
3 El problema de transporte 453
3.1 Problema de transporte . . . . . . . . . . . . . . . . . . . . . . . . . 453
3.2 Problema de asignacin . . . . . . . . . . . . . . . . . . . . . . . . . 455
3.3 Problema de emparejamiento . . . . . . . . . . . . . . . . . . . . . . 457
3.4 Problema de planicacin de la produccin . . . . . . . . . . . . . . 459
3.5 Otros problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460
8 NDICE GENERAL
4 Problemas de redes 463
4.1 Camino mnimo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
4.2 Flujo mximo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468
4.3 CPM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470
4.4 Otros problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472
5 Variable entera, acotada y libre 475
5.1 Variable entera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475
5.2 Variable acotada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476
5.3 Variable libre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
5.4 Variable binaria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478
5.5 Otros problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480
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
1.1 Orgenes y desarrollo
En los siglos XVII y XVIII, grandes matemticos como Newton, Leibnitz, Bernoulli
y, sobre todo, Lagrange, que tanto haban contribuido al desarrollo del clculo inni-
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 planicacin
de la produccin en la que por primera vez se hace corresponder a una extensa gama
de problemas una teora matemtica precisa y bien denida 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
1.1.1 Orgenes de la Investigacin operativa
La Investigacin Operativa (I.O.) es una ciencia relativamente joven. Los pri-
meros resultados importantes se consiguieron durante la II Guerra Mundial. En la
batalla de Inglaterra el ejrcito alemn someti a los britnicos a un duro ataque
areo. El gobierno estaba explorando cualquier mtodo para defender el pas. Los
ingleses tenan una fuerza area hbil, aunque pequea, pero dispona de radares.
Se plantearon sacarle al radar el mximo rendimiento. El gobierno convoc a media
docena de cientcos de diversas disciplinas para resolver este problema. As dise-
aron una nueva tcnica, la Investigacin Operativa, que duplic la efectividad del
sistema de defensa area mediante una localizacin ptima para las antenas y una
mejor distribucin de las seales.
Alentados por este xito, Inglaterra organiz equipos similares para resolver otros
problemas militares. EE.UU. hizo lo mismo cuando entr en guerra, crendose el
proyecto (SCOOP Scientic Computation of Optimum Programs) que desarroll el
algoritmo Simplex (George B. Dantzing, 1947).
Una de las primeras aplicaciones de los estudios del grupo SCOOP fue el puente
areo de Berln. Se continu con innidad de aplicaciones de tipo preferentemente
militar.
En 1946 comienza el largo perodo de la guerra fra entre la antigua Unin So-
vitica (URSS) y las potencias aliadas (principalmente, Inglaterra y Estados Unidos).
Uno de los episodios ms llamativos de esa guerra fra se produjo a mediados de 1948
cuando la URSS bloque las comunicaciones terrestres desde las zonas alemanas en
poder de los aliados con la ciudad de Berln, iniciando el bloqueo de Berln. A los alia-
dos se les plantearon dos posibilidades: o romper el bloqueo terrestre por la fuerza, o
llegar a Berln por el aire. Se adopt la decisin de programar una demostracin tc-
nica del poder areo norteamericano; a tal efecto, se organiz un gigantesco puente
areo para abastecer la ciudad: en diciembre de 1948 se estaban transportando 4500
toneladas diarias; en marzo de 1949, se lleg a las 8000 toneladas, tantas como se
transportaban por carretera y ferrocarril antes del corte de las comunicaciones. En
la planicacin de los suministros se utiliz la programacin lineal. (El 12 de mayo
de 1949, los soviticos levantaron el bloqueo).
En estos aos posteriores a la Segunda Guerra Mundial, en Estados Unidos se
asumi que la ecaz coordinacin de todas las energas y recursos de la nacin era
un problema de tal complejidad, que su resolucin y simplicacin pasaba necesa-
riamente por los modelos de optimizacin que resuelve la programacin lineal.
Paralelamente a los hechos descritos se desarrollan las tcnicas de computacin
y los ordenadores, instrumentos que haran posible la resolucin y simplicacin de
los problemas que se estaban gestando.
En 1952 un ordenador SEAC del National Bureau of Standars proporcion la
primera solucin de un problema de programacin lineal, que es el tema del que nos
ocuparemos al principio del libro. Se obtuvieron soluciones para los problemas de
determinar la altura ptima a la que deberan volar los aviones para localizar los
1.1. ORGENES Y DESARROLLO 15
submarinos enemigos, adems resolvieron el problema del reparto de fondos entre
combustible, armamento, instrumentos, equipos, etc. . . Tambin se determin la
profundidad a la que haba que enviar las cargas para alcanzar a los submarinos
enemigos con mayor efectividad. En este aspecto los resultados de la Investigacin
Operativa multiplicaron por cinco la ecacia de la fuerza area.
Los fundamentos matemticos de la programacin lineal se deben al matemtico
norteamericano de origen hngaro Janos von Neuman (1903-1957), quien en 1928
public su famoso trabajo Teora de Juegos. En 1947 conjetura la equivalencia de
los problemas de programacin lineal y la teora de matrices desarrollada en sus
trabajos. La inuencia de este respetado matemtico, discpulo de David Hilbert
en Gotinga y, desde 1930, catedrtico de la Universidad de Princenton de Estados
Unidos, hace que otros investigadores se interesaran paulatinamente por el desarrollo
riguroso de esta disciplina.
En 1958 se aplicaron los mtodos de la programacin lineal a un problema con-
creto: el clculo del plan ptimo de transporte de arena de construccin a las obras
de edicacin de la ciudad de Mosc. En este problema haba 10 puntos de partida
y 230 de llegada. El plan ptimo de transporte, calculado con el ordenador Strena
en 10 das del mes de junio, rebaj un 11% los gastos respecto a los costes previstos.
Estos mtodos se aplicaron posteriormente a problemas comerciales y de la in-
dustria, lo que contribuy a que la Investigacin Operativa se desarrollara extraor-
dinariamente entre los aos 50 y 60.
En la sociedad civil ya se haban planteado anteriormente diversos problemas pro-
pios de la Investigacin Operativa en un disciplina que se conoci como Investigacin
de Empresas o Anlisis de Empresas, pero lo que aport la II Guerra Mundial fue
el desarrollo de mtodos sistemticos para afrontar estos problemas, principalmente
el mtodo Simplex.
El campo de las aplicaciones no blicas de la Investigacin Operativa es muy am-
plio. sta resuelve problemas tales como el uso adecuado de los equipos de trabajo
y de personal, localizacin y volumen de sucursales, campaas de publicidad, trans-
porte de mercancas, problemas de grafos y redes, problemas de colas, etc. Tambin
tiene aplicaciones en agricultura y ganadera dando respuestas que permitan la mejor
distribucin de los cultivos o la alimentacin ms econmica para el ganado.
Como ya hemos comentado anteriormente, otro motor importantsimo del de-
sarrollo de la Investigacin Operativa ha sido el ordenador que permite resolver
problemas reales en que intervienen un gran nmero de variables en un tiempo ra-
zonable.
En Espaa el Instituto de Estadstica de Madrid comenz sus cursos en 1950
con una conferencia sobre aplicaciones de la Investigacin Operativa, justo cuando
apareci el libro de Morse-Kimbal en el que se exponan los trabajos de los equipos
cientcos que se constituyeron en la guerra. Se public a partir de 1950 una revista
especializada: Trabajos de Estadstica en Investigacin Operativa con un nivel
similar al de otros pases europeos, a pesar de que nuestra industria estaba muy
atrasada. Adelantndose a otros paises se cre un Instituto de Investigacin Opera-
16 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.
1.1.2 La Teora de Juegos
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 jo 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.
1.1.3 La Programacin Lineal
La Programacin Lineal es una tcnica reciente de la Matemtica Aplicada que
permite considerar un cierto nmero de variables simultneamente y calcular la
solucin ptima de un problema dado considerando ciertas restricciones.
Su nombre se debe a que en un principio trataba de resolver problemas que se
planteaban en trminos matemticos con funciones lineales. En la actualidad se
aplica tambin a problemas no lineales.
1.1. ORGENES Y DESARROLLO 17
La teora de la Programacin Lineal ha sido desarrollada por Gohn, Von Neu-
mann, Dantzig, Koopmans, W. Cooper y Charnes entre otros matemticos, estads-
ticos y economistas.
El proceso para encontrar la solucin ptima es el siguiente: Se plantea el pro-
blema, se traduce a un modo algebraico, se analizan las restricciones y se busca
el ptimo dependiendo del criterio que se quiera aplicar. La respuesta se puede
encontrar por varios mtodos. El ms general es el diseado por Dantzig, que se
denomina mtodo del Simplex.
Estos mtodos emplean un teorema dual" mediante el cual un problema de
maximizacin lleva emparejado uno de minimizacin.
Se utiliza en problemas de transportes, negocios, en logstica militar y en la
actualidad las aplicaciones tambin se dirigen hacia el rea industrial, a la resolucin
de problemas de produccin, etc.
La Programacin Lineal se ha convertido en una herramienta de las Matemticas
tanto tericas como aplicadas que utiliza el Algebra, la Teora de Matrices y est
relacionada con la Estadstica y la Teora de Juegos.
1.1.4 La Investigacin Operativa
Una caracterstica importante del siglo XX es el desarrollo de las distintas ramas
de las Matemticas y el descubrimiento de los vnculos entre ellas. Pero tambin el
resurgir de nuevas ramas como es la Investigacin Operativa.
Aunque debe su nombre a su aplicacin a las operaciones militares, y empieza a
desarrollarse en la II Guerra Mundial, sus orgenes se remontan al siglo XVII. Pascal
y Fermat, que haban inventado el concepto de esperanza matemtica, inician los
estudios de Investigacin Operativa junto con Jacques Bernoulli y Waldegrave al
intentar resolver problemas de decisin en el campo de la incertidumbre.
Posteriormente, Monge (1746-1818) se propuso y logr resolver un problema
econmico de naturaleza combinatoria: el de los desmontes y rellenos. Borel (1871-
1956) present la Teora matemtica de los Juegos en la Academia de Ciencias de
Pars, mientras que Erlang estableca la de las lneas de espera, que utiliz para la
concepcin de redes telefnicas. En vsperas de la II Guerra Mundial, Kantorovitch
conceba y aplicaba la programacin lineal a la planicacin. Por ello cuando el fsico
ingls Blackett, en 1938, fue llamado para reunir el primer equipo de investigadores
operativos, ya le haban precedido personalidades en dicho campo.
Blackett tuvo el mrito de encontrar la frmula que le permiti tratar de forma
rpida y con xito la difcil cuestin de la implantacin ptima de los radares de
vigilancia britnicos, que desempearon un papel tan decisivo en la Batalla de
Inglaterra. Desde que naliz la guerra se ha utilizado con xito para resolver
problemas de mbito empresarial, industrial, etc.
Es justo sealar que el desarrollo de la investigacin operativa ha sido posible
18 TEMA 1. INTRODUCCIN A LA TEORA DE OPTIMIZACIN
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:
La estructuracin de una situacin de la vida real como un modelo matemtico,
logrando una abstraccin de los elementos esenciales para que pueda buscarse
una solucin que concuerde con los objetivos del que toma decisiones.
El anlisis de la estructura de tales soluciones y el desarrollo de procedimientos
sistemticos para obtenerlas.
El desarrollo de una solucin, incluyendo la teora matemtica si es necesario,
que lleva el valor ptimo de la medida de lo que se espera del sistema.
Actualmente la Investigacin Operativa incluye gran cantidad de ramas como la
Programacin Lineal y No Lineal, Programacin Dinmica, Simulacin, Teora de
Colas, Teora de Inventarios, Teora de Grafos, etc. y se encuentra muy difundida,
con aplicaciones en campos muy variados y en particular muy unida a la Economa
y a la Informtica y por supuesto a la Estadstica y Teora de Probabilidad, consti-
tuyendo una materia universitaria con entidad propia.
1.2 Modelizacin de un problema de P. L.
Introduciremos las lneas generales del modelo de Programacin Lineal (P.L.) ilus-
trndolo con el siguiente ejemplo:
Ejemplo 1 Alimentacin del ganado
Nos proponemos alimentar el ganado de una granja de la forma que sea la ms
econmica posible. La alimentacin debe contener cuatro tipos de nutrientes que
llamamos A,B,C,D. Estos componentes se encuentran en dos tipos de piensos M y
N. La cantidad, en gramos, de cada componente por kilo de estos piensos viene dada
1.2. MODELIZACIN DE UN PROBLEMA DE P. L. 19
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?
Para resolver el problema construimos un modelo matemtico del mismo. La
construccin de este modelo puede hacerse siguiendo el proceso que se describe a
continuacin:
1.2.1 Formulacin de los modelos
Paso 1: Determinar las variables de decisin o de entrada y representarlas alge-
braicamente. Tomamos en este caso las variables:
x
1
= cantidad de pienso M(en Kg)
x
2
= cantidad de pienso N(en Kg).
Paso 2: Determinar las restricciones expresndolas como ecuaciones o inecuaciones
de las variables de decisin.
Las restricciones se deducen de la composicin requerida para la dieta (en Kg.):
En componente A 0, 1x
1
+ 0x
2
0, 4
En componente B 0x
1
+ 0, 1x
2
0, 6
En componente C 0, 1x
1
+ 0, 2x
2
2
En componente D 0, 2x
1
+ 0, 1x
2
1, 7
Paso 3: Expresar todas las condiciones implcitamente establecidas por la natu-
raleza de las variables (que no puedan ser negativas, que sean enteras, que slo
pueden tomar determinados valores, etc.)
En este ejemplo los cantidades de pienso no pueden tomar valores negativos
por lo tanto, deberamos imponer que sean x
1
0; x
2
0. No imponemos
otras restricciones al tipo de variables.
Paso 4: Determinar la funcin objetivo.
El objetivo de este problema es:
Minimizar gasto = Min Z = 20x
1
+ 8x
2
.
El modelo por tanto es el siguiente:
Min Z = 20x
1
+ 8x
2
s.a.: 0, 1x
1
+ 0x
2
0, 4
0x
1
+ 0, 1x
2
0, 6
0, 1x
1
+ 0, 2x
2
2
0, 2x
1
+ 0, 1x
2
1, 7
x
1
, x
2
0
20 TEMA 1. INTRODUCCIN A LA TEORA DE OPTIMIZACIN
1.3 Modelizacin de diversos problemas de I.O.
Vamos a modelizar ahora diversos problemas que se pueden plantear en la Investi-
gacin Operativa (I.O.) que enunciamos a continuacin:
Ejemplo 2 Transporte de tropa.
Un destacamento militar formado por 40 soldados de Ingenieros, 36 especia-
listas dinamiteros, 88 antiguerrilleros y 120 infantes como tropa de apoyo, ha de
transportarse hasta una posicin estratgica importante. En el parque de la base
se dispone de 4 tipos de vehculos A,B,C,D, acondicionados para el transporte de
tropas. El nmero de personas que cada vehculo puede transportar es 10,7,6,9 de la
forma en que se detalla en la siguiente tabla:
Ingenieros Dinamiteros Antiguerrillas Infantes
A 3 2 1 4
B 1 1 2 3
C 2 1 2 1
D 3 2 3 1
Los gastos de gasolina de cada vehculo hasta el punto de destino se estiman en
160, 80, 40 y 120 litros respectivamente. Si queremos ahorrar gasolina. Cuntos
vehculos de cada tipo habr que utilizar para que el gasto de gasolina sea el menor
posible?
P1) x
i
= n
o
vehculos de cada tipo que se usen.
P2)
3x
1
+x
2
+ 2x
3
+ 3x
4
40
2x
1
+x
2
+x
3
+ 2x
4
36
x
1
+ 2x
2
+ 2x
3
+ 3x
4
88
4x
1
+ 3x
2
+x
3
+x
4
120
P3) x
i
0; x
i
son enteros.
P4) Minimizar gasto gasolina = 160x
1
+ 80x
2
+ 40x
3
+ 120x
4
Min Z = 160x
1
+ 80x
2
+ 40x
3
+ 120x
4
s.a.: 3x
1
+x
2
+ 2x
3
+ 3x
4
40
2x
1
+x
2
+x
3
+ 2x
4
36
x
1
+ 2x
2
+ 2x
3
+ 3x
4
88
4x
1
+ 3x
2
+x
3
+x
4
120
x
i
0 ; enteros.
Ejemplo 3 Transporte de mercancas.
Un fabricante desea despachar varias unidades de un artculo a tres tiendas T1,
T2, T3. Dispone de dos almacenes desde donde realizar el envo, A y B. En el
1.3. MODELIZACIN DE DIVERSOS PROBLEMAS DE I.O. 21
primero dispone de 5 unidades de este artculo y el segundo 10. La demanda de cada
tienda es 8, 5 y 2 unidades respectivamente. Los gastos de transporte de un artculo
desde cada almacn a cada tienda estn expresados en la tabla:
T1 T2 T3
A 1 2 4
B 3 2 1
Cmo ha de realizar el transporte para que sea lo ms econmico posible?
x
i
= n
o
de unidades transportadas.
Problema equilibrado (Oferta=Demanda):
T1 T2 T3 Disponibilidad
A x
1
x
2
x
3
5
B x
4
x
5
x
6
10
Demanda 8 5 2
Min Z = x
1
+ 2x
2
+ 4x
3
+ 3x
4
+ 2x
5
+x
6
s.a.: x
1
+x
2
+x
3
= 5
x
4
+x
5
+x
6
= 10
x
1
+x
4
= 8
x
2
+x
5
= 5
x
3
+x
6
= 2
x
i
enteros y no negativos.
Ejemplo 4 rboles frutales.
Un agricultor tiene una parcela de 640 m
2
para dedicarla al cultivo de rboles
frutales: naranjos, perales y manzanos. Se pregunta de qu forma repartir la su-
percie de la parcela entre las tres variedades para conseguir el mximo benecio
sabiendo que:
Cada naranjo necesita un mnimo de 16 m
2
, cada peral 4 m
2
y cada manzano 8
m
2
.
Dispone de 900 horas de trabajo al ao, necesitando cada naranjo de 30 horas al
ao, cada peral 5 y cada manzano 10.
Los benecios unitarios son de 50, 25 y 20 unidades monetarias respectivamente
por cada naranjo, peral y manzano respectivamente.
x
1
= nmero de naranjos.
x
2
= nmero de perales.
x
3
= nmero de manzanos.
22 TEMA 1. INTRODUCCIN A LA TEORA DE OPTIMIZACIN
Max Z = 50x
1
+ 25x
2
+ 20x
3
s.a.: 16x
1
+ 4x
2
+ 8x
3
640
30x
1
+ 5x
2
+ 10x
3
900
x
i
0 ; enteros.
Ejemplo 5 rboles frutales (II).
1. Si se produce un incremento del precio de los naranjos que hace elevar el be-
necio de cada naranjo a 120. Sigue siendo vlida la solucin?
2. Si desciende el benecio de los perales hasta situarse en 10. Se modicar la
solucin del problema?
3. Al agricultor se le plantea la posibilidad de cultivar limoneros que necesitan
12m
2
de tierra, 20 horas anuales de mano de obra, proporcionando un benecio
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 200m
3
de agua anuales. Las necesidades son de 2m
3
por naranjo,
1m
3
por peral y 1m
3
por manzano cada ao. Cmo repercute esta nueva
situacin en la solucin inicial?
5. Se compra una parcela contigua de 160m
2
. Cul ser en este caso la nueva
solucin?
6. De acuerdo con un estudio tcnico, para el tratamiento ptimo de los perales
se necesitan 10m
2
y 15 horas de mano de obra anuales. Sigue siendo vlida
la solucin?
1. Z

= 120x
1
+ 25x
2
+ 20x
3
2. Z

= 50x
1
+ 10x
2
+ 20x
3
3. x
4
= nmero de limoneros.
Max Z = 50x
1
+ 25x
2
+ 20x
3
+ 30x
4
s.a.: 16x
1
+ 4x
2
+ 8x
3
+ 12x
4
640
30x
1
+ 5x
2
+ 10x
3
+ 20x
4
900
x
i
0 ; enteros.
4. Nueva restriccin: 2x
1
+x
2
+x
3
200
5. 16x
1
+ 4x
2
+ 8x
3
800
6. El programa lineal se escribir:
Z = 50x
1
+ 25x
2
+ 20x
3
s.a.: 16x
1
+ 10x
2
+ 8x
3
640
30x
1
+ 15x
2
+ 10x
3
900
x
i
0 ; enteros.
1.3. MODELIZACIN DE DIVERSOS PROBLEMAS DE I.O. 23
Ejemplo 6 Asignacin de personal.
Una empresa ha preseleccionado 5 candidatos para ocupar 4 puestos de trabajo en
la empresa. Los puestos de trabajo consisten en manejar 4 mquinas diferentes (un
trabajador para cada mquina). La empresa ha probado a los cinco trabajadores en
las 4 mquinas, realizando el mismo trabajo todos ellos en cada una de las mquinas,
se obtuvieron los siguientes tiempos:
Trabajo Mquina 1 Mquina 2 Mquina 3 Mquina 4
1 10 6 6 5
2 8 7 6 6
3 8 6 5 6
4 9 7 7 6
5 8 7 6 5
Determinar qu trabajadores debe seleccionar la empresa y a qu mquinas debe
asignarlos.
La variable x
ij
representa la accin el trabajador i se asigna a la mquina j.
Los dos estados de esta accin son 0 (si no se asigna) y 1 (si se asigna).
Min Z = 10x
11
+ 8x
21
+ 8x
31
+ 9x
41
+ 8x
51
+
+ 6x
12
+ 7x
22
+ 6x
32
+ 7x
42
+ 7x
52
+
+ 6x
13
+ 3x
23
+ 5x
33
+ 7x
42
+ 6x
53
+
+ 5x
14
+ 6x
24
+ 6x
34
+ 6x
44
+ 5x
54
s.a.: x
11
+x
21
+x
31
+x
41
1
x
21
+x
22
+x
23
+x
24
1
x
31
+x
32
+x
33
+x
34
1
x
41
+x
42
+x
43
+x
44
1
x
51
+x
52
+x
53
+x
54
1
x
11
+x
21
+x
31
+x
41
+x
51
= 1
x
21
+x
22
+x
23
+x
24
+x
52
= 1
x
31
+x
32
+x
33
+x
34
+x
53
= 1
x
41
+x
42
+x
43
+x
44
+x
54
= 1
x
ij
0; x
ij
{0, 1}
Ejemplo 7 Camino mnimo.
Una persona tiene que desplazarse a diario de un pueblo 1 a otro 7. Est es-
tudiando usando el mapa de carreteras cul debe ser el trayecto ms corto. Las
carreteras y sus distancias estn en la gura 1.1.
24 TEMA 1. INTRODUCCIN A LA TEORA DE OPTIMIZACIN
Figura 1.1 Mapa de carreteras de los pueblos 1 al 7.
La variable x
ij
representa la accin desplazarse del pueblo i al j, indicando el
uno que se produce tal desplazamiento, y el cero que no se produce.
Min Z = 12x
12
+ 4x
13
+ 5x
24
+ 3x
25
+ 2x
34
+ 10x
36
+ 5x
42
+ 2x
43
+ 10x
45
+ 3x
52
+ 10x
54
+
+ 2x
57
+ 10x
63
+ 4x
67
s.a.: x
12
+x
13
= 1
x
24
+x
25
x
12
x
42
x
52
= 0
x
34
+x
36
x
13
x
43
x
63
= 0
x
42
+x
43
+x
45
x
24
x
34
x
54
= 0
x
52
+x
54
+x
57
x
25
x
45
= 0
x
63
+x
67
x
36
= 0
x
57
x
67
= 1
x
ij
0 ; x
ij
{0, 1}.
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 gura 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
Determinar en qu poblaciones deben instalarse los almacenes para que el coste
de distribucin sea mnimo.
La variable x
ij
representa la cantidad enviada del almacn i a la poblacin j, e
y
i
toma el valor 1 si se selecciona la ciudad i para localizar el almacn. Toma el
valor 0 en caso contrario.
Min Z = 50x
12
+ 70x
13
+ 60x
14
+ 50x
21
+ 40x
23
+
+ 80x
24
+ 70x
31
+ 40x
32
+ 60x
34
+ 60x
41
+
+ 80x
42
+ 60x
43
s.a.: x
11
+x
21
+x
31
+x
41
3000
x
12
+x
22
+x
32
+x
42
2000
x
13
+x
23
+x
33
+x
43
2500
x
14
+x
24
+x
34
+x
44
2700
y
1
+y
2
+y
3
+y
4
= 2
x
11
+x
12
+x
13
+x
14
6000y
1
0
x
21
+x
22
+x
23
+x
23
6000y
2
0
x
31
+x
32
+x
33
+x
34
6000y
3
0
x
41
+x
42
+x
43
+x
44
6000y
4
0
x
ij
0 ; y
i
{0, 1}.
1.4 Modelos de programacin matemtica
La modelizacin general de un problema de programacin lineal es:
Max(Min): Z = c
1
x
1
+c
2
x
2
+c
n
x
n
sujeto a: a
11
x
1
+a
12
x
2
+ +a
1n
x
n
(=) b
1
. . . . . . . . . . . . . . . . . . . . . . . . . . .
a
m1
x
1
+a
m2
x
2
+ +a
mn
x
n
(=) b
m
x
1
0; x
2
0; . . . x
n
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
La formulacin general de un problema de optimizacin es:
Opt Z = f(x
1
, x
2
, . . . , x
n
)
sujeto a g
j
(x
1
, . . . , x
n
) 0; j = 1, . . . , m donde,
f es la funcin objetivo, (x
1
, x
2
, . . . , x
n
) son las variables de decisin, y tenemos
unas restricciones caracterizadas por las desigualdades sobre (g
1
, g
2
, . . . , g
m
).
En el caso de la programacin lineal la funcin objetivo y las restricciones son
lineales en las variables de decisin:
f(x
1
, x
2
, . . . , x
n
) = c
1
x
1
+ +c
n
x
n
= C
t
X
g
j
(x
1
, . . . , x
n
) = a
j1
x
1
+ +a
jn
x
n
b
j
A X b en notacion matricial, donde,
C es el vector coecientes del objetivo, A es la matriz de coecientes tecnolgicos,
b es el vector de trminos constantes y X el vector de variables de decisin.
1.5 El mtodo geomtrico
En algunos casos sencillos vamos a poder resolver problemas de programacin lineal
usando el mtodo geomtrico. La nica restriccin que tendremos que considerar es
que tenga dos variables de decisin. Ilustramos este mtodo con el ejemplo siguiente:
Ejemplo 9
Max Z = 2x
1
+x
2
s.a.: 5x
1
+ 2x
2
10
3x
1
+ 5x
2
15
x
1
, x
2
0.
Paso 1: Representamos en un sistema de coordenadas adecuadas las rectas que
corresponden a las restricciones.
5x
1
+ 2x
2
= 10
x
1
= 0 x
2
= 5
x
1
= 2 x
2
= 0
3x
1
+ 5x
2
= 15
x
1
= 0 x
2
= 3
x
1
= 5 x
2
= 0
Paso 2. Se representa la regin del plano que verica simultneamente todas las
restricciones. Esta regin se conoce con el nombre de regin factible. La regin
factible est marcada en la gura siguiente:
1.5. EL MTODO GEOMTRICO 27
Figura 1.2 Dibujo de la Regin Factible. Ejemplo 9.
Paso 3.
Representamos la recta correspondiente al valor 0 de la funcin objetivo:
Z = 2x
1
+x
2
= 0; 2x
1
+x
2
= 0
x
1
= 0 x
2
= 0
x
1
= 1 x
2
= 2
Si desplazamos la recta paralelamente hacia arriba el valor de Z va aumentando.
As la paralela a 2x
1
+x
2
= 0 que pasa por (1, 0) es 2x
1
+x
2
= 2 y nos da un valor
del objetivo Z = 2 1 + 0 = 2.
Lo ms alto que podemos desplazar la recta sin dejar la regin factible es hasta
el punto A, que es el punto de corte de las dos rectas:
5x
1
+ 2x
2
= 10
3x
1
+ 5x
2
= 15
_
15x
1
+ 6x
2
= 30
15x
1
25x
2
= 75
_
Si sumamos ambas, obtenemos el punto A, con coordenadas:
19x
2
= 45
x
2
= 45/19
x
1
= 20/19.
28 TEMA 1. INTRODUCCIN A LA TEORA DE OPTIMIZACIN
En el punto A se obtiene el ptimo, cuyo valor en la funcin objetivo vale
Z = 2
20
19
+
45
19
=
85
19
= 4. 473 7.
1.5.1 Descripcin del mtodo geomtrico
1) Dibujar un sistema de coordenadas cartesianas en el que las variables de decisin
corresponden a los ejes. Se elegir una escala adecuada (no necesariamente la
misma en ambos ejes). Representar las rectas correspondientes a las distintas
restricciones.
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).
3) Si la funcin objetivo es Z = c
1
x
1
+ c
2
x
2
, tendremos que representar la recta
r c
1
x
1
+ c
2
x
2
= 0 y estudiar la variacin de Z al desplazarnos dentro de
la regin factible mediante rectas paralelas a r c
1
x
1
+ c
2
x
2
= 0. En los
problemas de maximizacin la solucin ser el punto de la regin factible que
nos de un Z mayor, en los de minimizacin el que nos proporcione un Z menor.
Ejemplo 10
Max Z = 6x
1
+ 10x
2
s.a.: 5x
1
+ 2x
2
10
3x
1
+ 5x
2
15
x
1
, x
2
0.
Paso 1.
5x
1
+ 2x
2
= 10
x
1
= 0 x
2
= 5
x
1
= 2 x
2
= 0
3x
1
+ 5x
2
= 15
x
1
= 0 x
2
= 3
x
1
= 5 x
2
= 0
6x
1
+ 10x
2
= 0
x
1
= 0 x
2
= 0
x
1
= 1 x
2
=
3
5
Paso 2. Ver gura 1.3.
1.5. EL MTODO GEOMTRICO 29
Figura 1.3 Dibujo de la Regin Factible. Ejemplo 10.
Paso 3.
La recta paralela a 6x
1
+ 10x
2
= 0 que pasa por (1, 0) es 6x
1
+ 10x
2
= 6 con
valor del objetivo Z = 6 1 + 10 0 = 6.
Tiene soluciones mltiples pues, las dos rectas:
_
3x
1
+ 5x
2
= 15
6x
1
+ 10x
2
= 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.
A
_
20
19
,
45
19
_
y B(0, 3)
El valor del objetivo en el segmento AB es Z = 6 0 + 10 3 = 30.
Ejemplo 11
Min Z = x
1
4x
2
s.a.: x
1
+x
2
6
x
1
2x
2
2
4x
1
+ 3x
2
12
x
1
, x
2
0
30 TEMA 1. INTRODUCCIN A LA TEORA DE OPTIMIZACIN
Paso 1.
x
1
+x
2
= 6
x
1
= 0 x
2
= 6
x
1
= 6 x
2
= 0
x
1
2x
2
= 2
x
1
= 0 x
2
= 1
x
1
= 2 x
2
= 0
4x
1
+ 3x
2
= 12
x
1
= 0 x
2
= 4
x
1
= 3 x
2
= 0
x
1
4x
2
= 0
x
1
= 0 x
2
= 0
x
1
= 4 x
2
= 1
Paso 2. Ver gura 1.4.
Figura 1.4 Dibujo de la regin factible. Ejemplo 11.
Paso 3.
La recta paralela a x
1
4x
2
= 0 que pasa por (1,0) sera x
1
4x
2
= 1 con
Z = x
1
4x
2
= 1 1 4 0 = 1.
1.5. EL MTODO GEOMTRICO 31
Tengo que ir hacia arriba porque el trmino independiente ha aumentado y lo
que tengo que hacer es minimizar. El punto donde se obtiene el ptimo es el
punto A, con coordenadas:
A
_
x
1
+x
2
= 6
4x
1
+ 3x
2
= 12 donde,
x
1
=
6
7
, x
2
=
36
7
.
Y la solucin ptima es: Z = x
1
4x
2
=
138
7
.
Nota: Si el programa hubiese estado escrito en forma maximizante, el ptimo
se obtendra en el punto B(2, 0), como puede verse en la gura 1.4.
Ejemplo 12
Max Z = 2x
1
x
2
s.a.: x
1
x
2
2
5x
1
2x
2
16
x
1
, x
2
0
Paso 1.
x
1
x
2
= 2
x
1
= 0 x
2
= 2
x
1
= 2 x
2
= 0
5x
1
2x
2
= 16
x
1
= 2 x
2
= 3
x
1
=
16
5
x
2
= 0
2x
1
x
2
= 0
x
1
= 0 x
2
= 0
x
1
= 1 x
2
= 2
Paso 2. Ver gura 1.5.
32 TEMA 1. INTRODUCCIN A LA TEORA DE OPTIMIZACIN
Figura 1.5 Dibujo de la Regin factible. Ejemplo 12.
Paso 3.
La recta paralela a 2x
1
x
2
= 0 que pasa por (1, 0) toma el valor Z = 210 =
2. Luego la solucin ptima es el punto A, que se obtiene como:
A
_
x
1
x
2
= 2
5x
1
2x
2
= 16
donde, x
1
= 4, x
2
= 2.
Y la funcin objetivo vale Z = 2x
1
x
2
, y por tanto la solucin ptima vale
Z = 8 2 = 6. Si en el problema hubisemos tenido que minimizar la solucin
sera ilimitada.
1.5.2 Resumen del mtodo geomtrico
Si la regin factible es el programa lineal no tiene solucin factible.
Si la regin factible es acotada entonces siempre hay solucin nita, que puede
ser nica o mltiple.
Si la regin factible es no acotada entonces puede ocurrir que haya:
Solucin nita (nica o mltiple).
Solucin ilimitada.
Tema 2
Programacin Lineal
2.1 Modelo general de programacin lineal
Un programa lineal consiste en encontrar un vector X = (x
1
, x
2
, . . . , x
n
) que opti-
mice una funcin lineal Z. Las coordenadas de este vector estn sujetas a ciertas
restricciones que se expresan en ecuaciones o inecuaciones lineales.
Opt. Z = c
1
x
1
+c
2
x
2
+ +c
n
x
n
s.a.: a
11
x
1
+a
12
x
2
+ +a
1n
x
n
(=) b
1
a
21
x
1
+a
22
x
2
+ +a
2n
x
n
(=) b
2
. . . . . . . . . . . .
a
m1
x
1
+a
m2
x
2
+ +a
mn
x
n
(=) b
m
x
i
0 i = 1, 2, . . . , n.
_

_
Todos los c
j
son conocidos, tambin los a
ij
y los b
i
.
A los coecientes c
j
se les denomina coecientes de coste, a los a
ij
coecientes
tecnolgicos y a los b
i
coecientes de recursos.
Programa lineal en forma estndar. Decimos que un programa lineal est
en forma estndar si todas las restricciones son de igualdad y todos los b
i
con
i = 1, 2, . . . , m son positivos o nulos.
Veamos un ejemplo de un programa lineal en forma estndar:
Ejemplo 13 Problema en forma estndar
Max Z = 3x
1
+ 2x
2
x
3
s.a.:
2x
1
+x
2
3x
3
= 4
3x
1
2x
2
x
3
= 2
x
1
, x
2
, x
3
0
_
_
_
33
34 TEMA 2. PROGRAMACIN LINEAL
A veces puede aparecer en forma matricial:
Opt. Z = c
t
X
s.a.: AX = b
X 0
_
_
_
donde c =
_
_
_
_
_
c
1
c
2
.
.
.
c
n
_
_
_
_
_
, X =
_
_
_
_
_
x
1
x
2
.
.
.
x
n
_
_
_
_
_
, b =
_
_
_
_
_
b
1
b
2
.
.
.
b
m
_
_
_
_
_
y
A =
_
_
_
a
11
. . . a
1n
.
.
.
.
.
.
.
.
.
a
m1
. . . a
mn
_
_
_.
Tambin puede aparecer en forma vectorial:
Opt. Z = c
t
X
s.a.: a
1
x
1
+a
2
x
2
+ +a
n
x
n
= b
X 0
_
_
_
donde a
j
es la j sima columna de la matriz A.
Ejemplo 14 El modelo anterior en forma vectorial sera:
Opt. Z = (3, 2, 1)
_
_
x
1
x
2
x
3
_
_
s.a.:
_
2
3
_
x
1
+
_
1
2
_
x
2
+
_
3
1
_
x
3
=
_
4
2
_
X 0
Programa lineal en forma cannica maximizante. Decimos que un programa
lineal est en forma cannica maximizante si todas las restricciones son de desigual-
dad del tipo y el programa es de maximizar.
Ejemplo 15 Forma cannica maximizante
Max Z = 3x
1
+ 2x
2
x
3
s.a.:
2x
1
+x
2
3x
3
4
3x
1
2x
2
x
3
2
x
1
, x
2
, x
3
0
_
_
_
2.1. MODELO GENERAL DE PROGRAMACIN LINEAL 35
Programa lineal en forma cannica minimizante. Decimos que un programa
lineal est en forma cannica minimizante si todas las restricciones son en desigual-
dad () y el programa es de minimizar.
Ejemplo 16 Forma cannica minimizante
Min Z = 3x
1
+ 2x
2
x
3
s.a.:
2x
1
+x
2
3x
3
4
3x
1
2x
2
x
3
2
x
1
, x
2
, x
3
0
_
_
_
Cmo pasar cualquier modelo a forma estndar? Paso 1: Si algn b
j
es
negativo se multiplica la restriccin por 1.
Paso 2: Si la variable x
r
no tiene condicin de no negatividad, expresarla como
diferencia de dos variables positivas de la forma:
x
r
= x

r
x

r
; x

r
0; x

r
0
Paso 3: Las desigualdades se convierten en igualdades mediante la introduccin de
variables de holgura positivas de la forma:
n

a
ij
x
j
b
i
=
n

a
ij
x
j
+s
i
= b
i
; s
i
0
n

a
ij
x
j
b
i
=
n

a
ij
x
j
t
i
= b
i
; t
i
0
Ejemplo 17 Pasar a forma estndar el programa lineal:
Max Z = 3x
1
+x
2
s.a.:
x
1
+x
2
8
2x
1
+ 5x
2
20
x
1
, x
2
0
_
_
_
Los pasos 1 y 2 no son necesarios en este caso.
Paso 3:
Max Z = 3x
1
+x
2
s.a.:
x
1
+ 2x
2
+x
3
= 8
2x
1
+ 5x
2
+x
4
= 20
x
1
, x
2
, x
3
, x
4
0
_
_
_
36 TEMA 2. PROGRAMACIN LINEAL
Ejemplo 18 Pasar a forma estndar el programa lineal:
Max Z = x
1
+x
2
s.a.:
x
1
+ 5x
2
5
2x
1
x
2
4
x
1
, x
2
0
_
_
_
Paso 1: 2x
1
x
2
4 2x
1
+x
2
4
Paso 2: Son mayores que cero.
Paso 3:
Max Z = x
1
+x
2
s.a.:
x
1
+ 5x
2
+x
3
= 5
2x
1
+x
2
x
4
= 4
x
1
, x
2
, x
3
, x
4
0
_
_
_
Ejemplo 19 Pasar a forma estndar el programa lineal:
Min Z = 5x
1
+ 2x
2
s.a.:
6x
1
+x
2
6
4x
1
+ 3x
2
5
x
1
0
x
2
sin restriccion
_

_
Paso 1: No es necesario.
Paso 2: x
2
= x

2
x

2
; x

2
, x

2
0
Paso 3:
Min Z = 5x
1
+ 2x

2
2x

2
s.a.:
6x
1
+x

2
x

2
x
3
= 6
4x
1
+ 3x

2
3x

2
+x
4
= 5
x
1
, x

2
, x

2
, x
3
, x
4
0
_
_
_
Cambiar el sentido de optimizacin. Un problema de maximizacin puede
pasarse a otro de minimizacin y viceversa:
Max z =
n

c
j
x
j
Min z

=
n

(c
j
)x
j
; z = z

Min z =
n

c
j
x
j
Max z

=
n

(c
j
)x
j
; z = z

2.1. MODELO GENERAL DE PROGRAMACIN LINEAL 37


Cambiar el sentido de una desigualdad.
n

a
ij
x
j
b
i
=
n

(a
ij
)x
j
b
i
n

a
ij
x
j
b
i
=
n

(a
ij
)x
j
b
i
Convertir igualdades en desigualdades.
n

a
ij
x
j
= b
i

_
n
a
ij
x
j
b
i

n
a
ij
x
j
b
i

_
n
a
ij
x
j
b
i

n
(a
ij
)x
j
b
i

_
n
(a
ij
)x
j
b
i

n
a
ij
x
j
b
i
Ejemplo 20 Dado el programa lineal:
Min Z = 3x
1
+ 2x
2
x
3
s.a.:
x
1
2x
2
= 4
3x
1
+x
3
= 3
x
1
0, x
2
, x
3
0
_
_
_
pasarlo a forma cannica maximizante, y forma cannica minimizante.
Como la variable primera no cumple la condicin de no negatividad se realizar
el cambio de variable x
1
= x

1
0.
Forma cannica maximizante:
Max Z = 3x

1
2x
2
+x
3
x

1
2x
2
= 4
_
x

1
2x
2
4
x

1
2x
2
4

_
x

1
2x
2
4
x

1
+ 2x
2
4
3x

1
+x
3
= 3
_
3x

1
+x
3
3
3x
1
+x
3
3

_
3x
1
+x
3
3
3x
1
x
3
3
Max Z = 3x

1
2x
2
+x
3
s.a.:
x

1
2x
2
4
x

1
+ 2x
2
4
3x

1
+x
3
3
3x

1
x
3
3
x

1
0, x
2
, x
3
0
_

_
38 TEMA 2. PROGRAMACIN LINEAL
Forma cannica minimizante:
Min Z = 3x

1
+ 2x
2
x
3
s.a.:
x

1
+ 2x
2
4
x

1
2x
2
4
3x

1
x
3
3
3x

1
+x
3
3
x

1
0, x
2
, x
3
0
_

_
2.2 Nociones previas
Decimos que {a
1
, a
2
, ..., a
n
} es un conjunto de vectores linealmente depen-
diente si existen
1
,
2
, ....
n
constantes no todas nulas de forma que se cumple

1
a
1
+
2
a
2
+
3
a
3
+... +
n
a
n
=

0. Son vectores linealmente independientes


si la igualdad anterior slo se cumple para
1
=
2
= ... =
n
= 0.
Decimos que el vector v se puede expresar como combinacin lineal convexa
de los vectores {a
1
, a
2
, ..., a
n
} si existen constantes positivas
1
,
2
, ...
n
de forma
que se verique:
v =
1
a
1
+
2
a
2
+... +
n
a
n
y
1
+
2
+... +
n
= 1.
Sean A
1
y A
2
dos puntos de IR
n
; se llama segmento lineal cerrado de extremos
A
1
y A
2
al conjunto:
{A IR
n
/A = A
1
+ (1 )A
2
; 0 1}
Un conjunto C IR
n
es un conjunto convexo cuando dados dos puntos cua-
lesquiera de C el segmento lineal cerrado determinado por esos puntos est contenido
en C.
Decimos que un punto x de un conjunto convexo C es un punto extremo
o vrtice de C si no existen dos puntos x
1
, x
2
C , x
1
= x
2,
de forma que
x = x
1
+ (1 )x
2
para algn / 0 < < 1.
Se llama semiespacio cerrado al conjunto de puntos de IR
n
que cumple

1
x
1
+
2
x
2
+... +
n
x
n

Se llama poliedro al conjunto interseccin de una cantidad nita de semiespacios
cerrados.
Teorema 1 Todo semiespacio cerrado es un conjunto convexo.
Demostracin:
Sea S = {(x
1
, x
2
, ...x
n
) IR
n
/
1
x
1
+
2
x
2
+... +
n
x
n
}. Sean Y y Z dos
puntos de S, entonces se cumple:
2.3. DEFINICIONES SOBRE LAS SOLUCIONES DE UN PROBLEMA 39
Y = (y
1
, y
2
, ...y
n
) S
1
y
1
+
2
y
2
+... +
n
y
n
.
Z = (z
1
, z
2
, ...z
n
) S
1
z
1
+
2
z
2
+... +
n
z
n
.
Demostraremos que cualquier punto del segmento Y Z verica la condicin:
Y + (1 )Z S ; 0 1
Pero
Y + (1 )Z = (y
1
, y
2
, . . . , y
n
) + (1 )(z
1
, z
2
, . . . , z
n
) =
= (y
1
+ (1 )z
1
, y
2
+ (1 )z
2
, . . . , y
n
+ (1 )z
n
)
Ahora sustituimos y comprobamos que sea menor o igual a .

1
[y
1
+ (1 )z
1
] +
2
[y
2
+ (1 )z
2
] + +
n
[y
n
+ (1 )z
n
] =
=
1
y
1
+
1
(1 )z
1
+
2
y
2
+
2
(1 )z
2
+ +
n
y
n
+
n
(1 )z
n
=
= (
1
y
1
+
2
y
2
+ +
n
y
n
) + (1 )(
1
z
1
+
2
z
2
+ +
n
z
n
)
+ (1 ) = + =
Luego
Y + (1 )Z S.
Corolario 1 Un poliedro es un conjunto convexo.
Teorema 2 Si C es un conjunto convexo acotado con un nmero nito de puntos
extremos, entonces cualquier punto de C puede expresarse como combinacin lineal
convexa de los puntos extremos. Esto es:
A
1
, A
2
, . . . , A
k
puntos extremos de C , A C =
A =
1
A
1
+
2
A
2
+ +
k
A
k
siendo
1
+
2
+ +
k
= 1.
2.3 Deniciones sobre las soluciones de un proble-
ma
Vamos a dar a continuacin algunas deniciones sobre las soluciones de un problema
de programacin lineal.
40 TEMA 2. PROGRAMACIN LINEAL
Se llama solucin factible a cualquier vector x que verique
Ax = b; x 0
Se llama regin factible al conjunto de todas las soluciones factibles
F = {x IR
n
/ Ax = b; x 0}
Decimos que X

es una solucin factible ptima si optimiza en el sentido


deseado a la funcin objetivo. Esto es:
Caso de Maximizacin Z

= C
t
X

cualquier otro X F =
Z = C
t
X C
t
X

= Z

Caso de Minimizacin Z

= C
t
X

cualquier otro X F =
Z = C
t
X C
t
X

= Z

Sea X

la solucin ptima del programa lineal, a la cantidad Z

= C
t
X

se le
llama valor ptimo del programa lineal.
Decimos que un programa lineal es no acotado cuando no tiene valor ptimo
nito: Max Z + o Min Z .
Decimos que un programa lineal no tiene solucin, o que es infactible
cuando no existen valores para las variables x
i
que veriquen las restricciones. Es
decir, la regin factible es vaca, F = .
Matriz bsica: Supongamos un sistema de ecuaciones del tipo:
_

11
x
1
+... +
1n
x
n
= b
1

21
x
1
+... +
2n
x
n
= b
2
... ... .

m1
x
1
+... +
mn
x
n
= b
n
Denotamos por A la matriz de los coecientes, A = (
ij
) . Si suponemos que
r(A) = m, tomamos cualquier submatriz B de A, que sea cuadrada y rango m
(determinante no nulo). La matriz B se llama matriz bsica.
Si hacemos igual a cero las n m variables asociadas a los vectores columnas
de A que no estn en B, la solucin del sistema formado por estas variables nulas
y la solucin del sistema resultante BX
B
= b de m ecuaciones con m variables se
denomina solucin bsica asociada a la matriz bsica B.
Se denominan variables bsicas a las variables del vector X
B
formado por las
m variables del sistema BX
B
= b. Las nm variables que se han igualado a cero
se denominan variables no bsicas.
Llamamos Base asociada a la matriz bsica B a los vectores cuyas coordenadas
son cada una de las columnas de B.
2.3. DEFINICIONES SOBRE LAS SOLUCIONES DE UN PROBLEMA 41
Ejemplo 21 Encontrar las soluciones bsicas de:
x
1
+ 2x
2
+x
3
= 4
2x
1
+x
2
+ 5x
3
= 5
_
A =
_
1 2 1
2 1 5
_
; r(A) = 2.
Escogemos como matriz bsica
B =
_

1

2
_
=
_
1 2
2 1
_
En este caso las variables bsicas son x
1
y x
2
. La base est formada por los
vectores
_
1
2
_
y
_
2
1
_
.
Para calcular la solucin bsica correspondiente a la matriz B igualamos a 0 la
variable no bsica, x
3
= 0.
BX
B
= b ; =
_
1 2
2 1
__
x
1
x
2
_
=
_
4
5
_
=
x
1
+ 2x
2
= 4
2x
1
+x
2
= 5
_
X
B
= B
1
b
_
x
1
x
2
_
=
_
1 2
2 1
_
1
_
4
5
_
=
_
2
1
_
Una solucin bsica del sistema sera:
x
1
= 2; x
2
= 1; x
3
= 0.
Podramos haber escogido como submatriz
B =
_

1
,
3
_
=
_
1 1
2 5
_
y por tanto x
2
= 0
_
1 1
2 5
__
x
1
x
2
_
=
_
4
5
_
=
x
1
+x
3
= 4
2x
1
+ 5x
3
= 5
_
42 TEMA 2. PROGRAMACIN LINEAL
X
B
= B
1
b =
_
x
1
x
3
_
=
_
1 1
2 5
_
1
_
4
5
_
=
_
5
1
_
Una solucin bsica del sistema sera:
x
1
= 5; x
2
= 0; x
3
= 1.
Otra submatriz
B =
_

2
,
3
_
=
_
2 1
1 5
_
y por tanto x
1
= 0
X
B
= B
1
b =
_
x
2
x
3
_
=
_
2 1
1 5
_
1
_
4
5
_
=
_
5/3
2/3
_
.
Una solucin bsica del sistema sera:
x
1
= 0; x
2
=
5
3
; x
3
=
2
3
.
Resumiendo, las soluciones bsicas de este ejemplo son:
Variables bsicas Variables no bsicas
x
1
= 2; x
2
= 1 x
3
= 0
x
1
= 5; x
3
= 1 x
2
= 0
x
2
=
5
3
; x
3
=
2
3
x
1
= 0
Si A es una matriz de dimensin m n y n > m, tendr
_
n
m
_
soluciones
bsicas como mximo. En el ejemplo anterior
_
3
2
_
= 3, y como hemos visto
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 X
B
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 m1 variables bsicas.
2.4. ALGUNOS RESULTADOS SOBRE LAS SOLUCIONES 43
Ejemplo 22 Con referencia al ejemplo anterior:
Variables bsicas Variables no bsicas
x
1
= 2; x
2
= 1 x
3
= 0 Solucin bsica factible
x
1
= 5; x
3
= 1 x
2
= 0 Solucin bsica no factible
x
2
=
5
3
; x
3
=
2
3
x
1
= 0 Solucin bsica factible
2.4 Algunos resultados sobre las soluciones
Vamos a estudiar ahora algunos resultados relacionados con las soluciones de un
problema de programacin lineal.
Teorema 3 El conjunto F de las soluciones factibles es convexo.
Demostracin
Suponemos F = {x IR
n
/ Ax = b; x 0}
x
1
, x
2
F probaremos que x = x
1
+ (1 )x
2
F; 0 1
x
1
F Ax
1
= b; x
1
0
x
2
F Ax
2
= b; x
2
0
Como x = x
1
+ (1 )x
2
F si cumple que AX = b; esto es:
A[x
1
+ (1 )x
2
] = Ax
1
+A(1 )x
2
= Ax
1
+ (1 )Ax
2
=
= b + (1 )b = b +b b = b.
Veamos que x 0
x
1
+ (1 )x
2
0 son sumas de dos productos 0; por tanto es 0.
Luego se verica que x
1
+ (1 )x
2
F. Luego F es convexo.
Teorema 4 Sea A una matriz mn con r(A) = m y sea b un vector m1. Sea
F el conjunto convexo formado por los vectores X que cumplen AX = b con X 0.
Un vector X es una solucin bsica factible si y solo si X es punto extremo de F.
Demostracin
= Supongamos, sin prdida de generalidad, que X = (x
1
, x
2
, . . . , x
m
; 0, 0, . . . , 0)
es una solucin bsica factible, y B = {a
1
, a
2
, . . . , a
m
} la base asociada a esta solu-
cin.
44 TEMA 2. PROGRAMACIN LINEAL
Supongamos que X no es punto extremo, y razonaremos por reduccin al ab-
surdo.
Si X no es punto extremo, existen dos puntos y, z F que verican:
X = y + (1 )z para algn (0, 1) con y = z.
Adems y, z son de la forma:
y = (y
1
, y
2
, . . . , y
m
; y
m+1
, . . . , y
n
) z = (z
1
, z
2
, . . . , z
m
; z
m+1
, . . . , z
n
).
De esta forma tenemos:
(x
1
, x
2
, . . . , x
m
; 0, . . . , 0) =
= (y
1
, y
2
, . . . , y
m
; y
m+1
, . . . , y
n
) + (1 )(z
1
, z
2
, . . . , z
m
; z
m+1
, . . . , z
n
).
Si operamos tenemos:
(x
1
, x
2
, . . . , x
m
; 0, . . . , 0) =
= (y
1
+ (1 )z
1
, y
2
+ (1 )z
2
, . . . , y
m
+ (1 )z
m
, y
m+1
+
+(1 )z
m+1
, . . . , y
n
+ (1 )z
n
).
Luego
_
_
_
y
m+1
+ (1 )z
m+1
= 0

y
n
+ (1 )z
n
= 0
=
=
_
_
_
y
m+1
= 0

y
n
= 0
y
_
_
_
z
m+1
= 0

z
n
= 0
puesto que no puede haber soluciones negativas.
Adems tenemos, como y, z F se cumple
y
1
a
1
+y
2
a
2
+ +y
m
a
m
= b
z
1
a
1
+z
2
a
2
+ +z
m
a
m
= b
_
Si restamos ambas expresiones nos queda:
(y
1
z
1
)a
1
+ (y
2
z
2
)a
2
+ + (y
m
z
m
)a
m
=

0.
Por denicin sabemos que los escalares tienen que ser cero, pues {a
1
, a
2
, . . . , a
m
}
forman una base, y por tanto son linealmente independientes, por lo que se deduce:
2.4. ALGUNOS RESULTADOS SOBRE LAS SOLUCIONES 45
y
1
z
1
= 0
y
2
z
2
= 0

y
m
z
m
= 0
_

_
=
y
1
= z
1
y
2
= z
2

y
m
= z
m
_

_
= y = z.
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 = (x
1
, x
2
, . . . , x
k
; 0, . . . , 0).
Como tiene que vericar el sistema tendremos:
x
1
a
1
+x
2
a
2
+ +x
k
a
k
= b (2.1)
Vamos a probar que {a
1
, a
2
, . . . , a
k
} son linealmente independientes. Vamos a ra-
zonar por reduccin al absurdo.
Supongamos que no son linealmente independientes, entonces existen
1
,
2
, . . . ,
k
no todos nulos tal que:

1
a
1
+
2
a
2
+ +
k
a
k
=

0
Si multiplicamos por > 0, entonces:

1
a
1
+
2
a
2
+ +
k
a
k
=

0 (2.2)
Si sumamos (2.1) y (2.2) tenemos:
(x
1
+
1
)a
1
+ (x
2
+
2
)a
2
+ + (x
k
+
k
)a
k
= b
Si restamos (2.1) y (2.2) tenemos:
(x
1

1
)a
1
+ (x
2

2
)a
2
+ + (x
k

k
)a
k
= b
Si llamamos y, z a los vectores:
y = (x
1
+
1
, x
2
+
2
, . . . , x
k
+
k
, 0, . . . , 0)
z = (x
1

1
, x
2

2
, . . . , x
k

k
, 0, . . . , 0)
Ambos son solucin de AX = b. Si tomamos sucientemente pequeo:
x
i
+
i
0 y 0
x
i

i
0 z 0
Por tanto y, z verican el sistema y adems son mayores o iguales a cero, entonces
y, z F.
46 TEMA 2. PROGRAMACIN LINEAL
Pero si calculamos
1
2
y +
1
2
z tenemos:
1
2
y +
1
2
z =
_
1
2
x
1
+
1
2

1
,
1
2
x
2
+
1
2

2
, . . . ,
1
2
x
k
+
1
2

k
, 0, . . . , 0
_
+ (2.3)
+
_
1
2
x
1

1
2

1
,
1
2
x
2

1
2

2
, . . . ,
1
2
x
k

1
2

k
, 0, . . . , 0
_
=
= (x
1
, x
2
, . . . , x
k
, 0, . . . , 0) = X
Pero esto contradice que X sea punto extremo de F. Luego {a
1
, a
2
, . . . , a
k
} son
vectores linealmente independientes y k m.
Pueden ocurrir dos cosas:
Si k = m forman base, y entonces X es solucin bsica factible.
Si k < m se completan las columnas que faltan formando una base, entonces
ser solucin bsica factible degenerada.
Teorema 5 Dado un programa lineal en forma estndar factible acotado, el valor
ptimo del programa lineal se obtiene en un punto extremo de la regin factible.
Demostracin
Sea el programa lineal
Max z = c
t
X
s.a. AX = b
X 0
_
_
_
y sean {E
1
, E
2
, . . . , E
k
} puntos extremos.
Si llamamos M = max{c
t
E
1
, c
t
E
2
, . . . , c
t
E
k
}.
Sea ahora X F un punto cualquiera de la regin factible, usando el teorema
anterior tendremos:
X =
1
E
1
+
2
E
2
+ +
k
E
k
/
1
+
2
+ +
k
= 1.
Entonces:
Z = c
t
X = c
t
(
1
E
1
+
2
E
2
+ +
k
E
k
) =
=
1
c
t
E
1
+
2
c
t
E
2
+ +
k
c
t
E
k

1
M +
2
M + +
k
M
= (
1
+
2
+ +
k
) M = 1 M = M.
2.4. ALGUNOS RESULTADOS SOBRE LAS SOLUCIONES 47
As tenemos que M es el valor de la funcin objetivo en algn punto extremo.
x F el valor de la funcin objetivo Z M, entonces el punto de la regin factible
que me da el mayor valor es el valor extremo.
La demostracin para el caso minimizante es idntica, slo que hay que buscar
el mnimo y tendremos que Z m, siendo m = min{c
t
E
1
, c
t
E
2
, . . . , c
t
E
k
}.
Ejemplo 23 Hallar la solucin ptima del programa lineal:
Max Z = 2x
1
3x
2
+ 10x
3
s.a.:
x
1
+ 2x
2
+x
3
= 4
2x
1
+x
2
+ 5x
3
= 5
x
1
, x
2
, x
3
0
_
_
_
Variables bsicas Variables no bsicas Objetivo
x
1
= 2; x
2
= 1 x
3
= 0 z=1
x
1
= 5; x
3
= 1 x
2
= 0 No factible
x
2
= 5/3; x
3
= 2/3 x
1
= 0 z=5/3
El valor mximo de Z es Z = 5/3, eso implica que la solucin ptima es:
x
1
= 0 x
2
= 5/3 x
3
= 2/3.
Teorema 6 Sean x
1
, x
2
, . . . , x
k
soluciones ptimas de un programa lineal en forma
estndar, entonces las combinaciones lineales convexas de x
1
, x
2
, . . . , x
k
tambin son
soluciones ptimas.
Si llamamos X =
1
x
1
+
2
x
2
+ +
k
x
k
, y evaluamos Z, obtenemos:
Z = c
t
X = c
t
(
1
x
1
+
2
x
2
+ +
k
x
k
) =
=
1
c
t
x
1
+
2
c
t
x
2
+ +
k
c
t
x
k
=
=
1
M +
2
M + +
k
M =
= (
1
+
2
+ +
k
) M = 1 M = M.
Luego X tambin es ptima.
Ejemplo 24 Resolver el siguiente P.L.
Max z = 3x
1
+ 3x
2
s.a.:
x
1
4
x
1
+x
2
6
x
2
3
x
1
, x
2
0
_

_
48 TEMA 2. PROGRAMACIN LINEAL
Los puntos extremos son A(4, 0), B(4, 2), C(3, 3), D(0, 3), E(0, 0) que aparecen
en la siguiente gura.
Figura 2.1: Soluciones ptimas multiples
Variables bsicas Objetivo
x
1
= 0; x
2
= 0 z = 0 Solucin bsica factible
x
1
= 0; x
2
= 3 z = 9 Solucin bsica no factible
x
1
= 3; x
2
= 3 z = 18 Solucin ptima
x
1
= 4; x
2
= 2 z = 18 Solucin ptima
x
1
= 4; x
2
= 0 z = 12 Solucin bsica factible
Luego B y C son soluciones ptimas, y por tanto todos los puntos del segmento
lineal BC tambin son soluciones ptimas.
2.5 El algoritmo del Simplex
El algoritmo del Simplex es una tcnica general de resolucin de problemas de pro-
gramacin lineal. Los pasos bsicos del algoritmo son los siguientes:
1. Partir de una solucin bsica factible (un vrtice de la regin factible).
2. Comprobar si esta solucin es ptima. Si es as, parar. En caso contrario, ir
al paso 3.
2.5. EL ALGORITMO DEL SIMPLEX 49
3. Hallar una nueva solucin bsica adyacente a la anterior que mejore el valor
de la funcin objetivo. Ir al paso 2.
Explicaremos la forma en que se realizan estos pasos con el siguiente ejemplo,
dejando para ms adelante una exposicin ms detallada del algoritmo.
Ejemplo 25 Resolver el siguiente P.L.
Max z = x
1
+x
2
s.a.:
x
1
+x
2
2
x
1
+ 2x
2
6
2x
1
+x
2
6
x
1
, x
2
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:
Vrtice Coordenadas Valor de la funcin objetivo
O (0, 0) 0
A (0,2) 2
B (
2
3
,
8
3
)
10
3
C (2, 2) 4
D (3, 0) 3
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 = x
1
+x
2
s.a.:
_

_
x
1
+x
2
+h
1
= 2
x
1
+2x
2
+h
2
= 6
2x
1
+x
2
+h
3
= 6
x
1
0 x
2
0 h
1
0 h
2
0 h
3
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 x
1
y x
2
el
valor cero tenemos la solucin bsica factible de partida (x
1
, x
2
, h
1
, h
2
, h
3
) =
(0, 0, 2, 6, 6) con un valor para z = x
1
+x
2
= 0. Los valores anteriores cumplen
50 TEMA 2. PROGRAMACIN LINEAL
el siguiente sistema que se ha conseguido aadiendo al anterior una ltima
ecuacin conseguida trasponiendo trminos en la funcin objetivo.
x
1
+x
2
+h
1
= 2
x
1
+2x
2
+h
2
= 6
2x
1
+x
2
+h
3
= 6
z x
1
x
2
= 0
x
1
0 x
2
0 h
1
0 h
2
0 h
3
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.
Paso 2 Comprobar si esta solucin es ptima. Puesto que z = x
1
+x
2
= 0. Podremos
mejorarla si logramos introducir en la base la variable x
1
x
2
. Supongamos
que introducimos x
1
en la base aumentando su valor dentro de las condiciones
de factibilidad y manteniendo x
2
como variable no bsica (x
2
= 0). Se deber
pues cumplir:
x
1
+h
1
= 2
x
1
+h
2
= 6
2x
1
+h
3
= 6
x
1
0 h
1
0 h
2
0 h
3
0
es decir
h
1
= 2 + x
1
0
h
2
= 6 x
1
0
h
3
= 6 2x
1
0
Como x
1
0 la primera restriccin se cumple siempre. Para que se cumplan
las otras dos ha de ser x
1
6 y x
1

6
2
= 3 Por lo tanto el mejor valor
para x
1
cumpliendo todas las condiciones de factibilidad es 3. As que la
solucin actual no es ptima, puesto que puede mejorarse aumentando el valor
de x
1
.
Paso 3 Hallar una nueva solucin bsica adyacente a la actual que mejore el valor de
la funcin objetivo.
Si tomamos x
1
= 3, h
3
= 6 2x
1
= 0 . Por lo tanto la variable h
3
sal-
dr de la base entrando en su lugar x
1
. La nueva solucin es (x
1
, x
2
, h
1
, h
2
, h
3
) =
(3, 0, 5, 3, 0) con un valor para z = x
1
+x
2
= 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 coecientes de x
1
del sistema sean 0, 0, 1, 0, que
eran los coecientes que antes tena h
3
. Para ello dividimos la tercera ecuacin
por el coeciente de x
1
, que es 2 (pivote), y realizamos las transformaciones
del mtodo de Gauss a las restantes ecuaciones, de modo que los restantes
coecientes de x
1
sean nulos. De esta forma se obtiene el sistema siguiente:
2.6. ALGORITMO DEL SIMPLEX EN FORMA DE TABLA (MAX) 51
3
2
x
2
+h
1
+
1
2
h
3
= 5
3
2
x
2
+h
2

1
2
h
3
= 3
x
1
+
1
2
x
2
+
1
2
h
3
= 3
z
1
2
x
2
+
1
2
h
3
= 3
x
1
0 x
2
0 h
1
0 h
2
0 h
3
0
Ir paso 2 La solucin actual es (x
1
, x
2
, h
1
, h
2
, h
3
) = (3, 0, 5, 3, 0) Es ptima? Despe-
jamos z de la ltima ecuacin obteniendose z = 3 +
1
2
x
2

1
2
h
3
. El valor de
z puede mejorar si podemos aumentar el valor de x
2
que toma en la solucin
bsica actual el valor 0. Conviene mantener para h
3
el valor 0. Impondremos
las condiciones de factibilidad:
h
1
= 5
3
2
x
2
0, h
2
= 3
3
2
x
2
0, x
1
= 3
1
2
x
2
0
Por lo tanto
5
3
2
x
2
,
3
3
2
x
2
,
3
1
2
x
2
;
10
3
x
2
, 2 x
2
, 6 x
2
Estas condiciones se cumplen para x
2
2
Paso 3 Dando a x
2
el valor 2 se mejora lo ms posible el valor de z. Esta variable entra
en la base. Sustituyendo este valor para x
2
y h
3
por 0, se obtiene h
2
= 0 que
es la variable que entra en la base. Si denominamos pivote al elemento a
lk
siendo x
l
la variable que deja de ser bsica, y x
k
la variable que pasa a ser
bsica, el pivote es ahora el coeciente de x
2
de la segunda ecuacin, que es
3
2
. Dividiendo esta segunda ecuacin por
3
2
y haciendo las transformaciones de
Gauss adecuadas para anular el resto de los coecientes de x
2
el sistema toma
el siguiente aspecto.
h
1
h
2
+h
3
= 2
x
2
+
2
3
h
2

1
3
h
3
= 2
x
1

1
3
h
2
+
2
3
h
3
= 2
z +
1
3
h
2
+
1
3
h
3
= 4
x
1
0 x
2
0 h
1
0 h
2
0 h
3
0
La nueva solucin bsica es (x
1
, x
2
, h
1
, h
2
, h
3
) = (2, 2, 2, 0, 0) . Esta solucin
ya es ptima. En efecto, si despejamos z de la ltima ecuacin del sistema
obtenemos z = 4
1
3
h
2

1
3
h
3
. Como h
2
y h
3
no pueden tomar valores negativos
el mejor valor para estas variables es cero. Por lo tanto la solucin actual
(2, 2, 2, 0, 0) no puede mejorarse.
2.6 Algoritmo del Simplex en forma de tabla (max)
Vamos a describir el Algoritmo del simplex en forma de tabla aplicable al caso de
que el problema sea de maximizacin, todas las restriciones del tipo , y todos los
52 TEMA 2. PROGRAMACIN LINEAL
recursos no negativos. Para aplicar el algoritmo en otras situaciones se harn las
transformaciones necesarias para poner el problema en esta forma (ver epgrafe 2.8).
Consideremos el problema (o programa) lineal que consiste en encontrar un vector
X = (x
1
, x
2
, . . . , x
n
) que optimice una funcin lineal.
Opt. Z = c
1
x
1
+c
2
x
2
+ +c
n
x
n
s.a.: a
11
x
1
+a
12
x
2
+ +a
1n
x
n
b
1
a
21
x
1
+a
22
x
2
+ +a
2n
x
n
b
2
: : . . . : . . .
a
m1
x
1
+a
m2
x
2
+ +a
mn
x
n
b
m
x
i
0, b
i
0, i = 1, 2, . . . , n.
_

_
Pasamos en primer lugar el problema a forma estndar aadiendo m variables de
holgura x
n+1
, x
n+2
, . . . , x
n+m
. De esta forma el problema tomar la forma:
Opt. Z = c
1
x
1
+c
2
x
2
+ +c
n
x
n
s.a.: a
11
x
1
+a
12
x
2
+ +a
1n
x
n
+x
n+1
= b
1
a
21
x
1
+a
22
x
2
+ +a
2n
x
n
+x
n+2
= b
2
: : . . . : . . .
a
m1
x
1
+a
m2
x
2
+ +a
mn
x
n
+x
n+m
= b
m
x
i
0 i = 1, 2, . . . , n.
0. Construir la tabla inicial: Esta tabla se construye tomando en cada la los
coecientes de cada restriccin seguido del correspondiente trmino indepen-
diente de la forma estndar. Aadimos una ltima la con los coecientes 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:
Opt. c
1
c
2
. . . c
n
0 0 0 coef. objetivo
x
1
x
2
. . . x
n
x
n+1
x
n+2
x
n+m
variables
x
n+1
0 a
11
a
12
. . . a
1n
1 0 0 b
1
x
n+2
0 a
21
a
22
. . . a
2n
0 1 0 b2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . .
.
.
.
x
n+m
0 a
m1
a
m2
. . . a
mn
0 0 1 b
m
c
1
c
2
. . . c
n
0 0 0 0
Tomamos la solucin inicial que corresponde a una base cannica ( La cor-
respondiente matriz bsica es la identidad). est solucin es.
(x
1
, x
2
, . . . x
n
, x
n+1
, x
n+2
, . . . , x
n+m
) = (0, 0, . . . 0, b
1
, b
2
, . . . , b
m
)
1. Partir de una solucin bsica factible: Considerar la solucin inicial.
2.6. ALGORITMO DEL SIMPLEX EN FORMA DE TABLA (MAX) 53
2. Comprobar si esta solucin es ptima. La solucin actual es ptima
si todos los costes reducidos, coecientes de la ltima la, son no negativos
(positivos o nulos). Si es as, parar. En otro caso ir al paso 3.
3. Hallar una nueva solucin bsica adyacente a la actual que mejore
el valor de la funcin objetivo (leer nota a pie de pgina
1
):
3a. Regla de la variable de entrada
Seleccionar para entrar en la base la variable x
j
con r
j
ms negativo. Sea
sta la x
k
. Cuando hay varias variables que tienen este mismo valor, se
selecciona arbitrariamente una cualquiera de stas.
3 b. Regla de la variable de salida
Seleccionar para salir de la base la variable de la la i que haga mnimo
el cociente
x
b
i
y
ik
para los y
ik
> 0. Sea la la l. (Si todos los y
ik
0, el
problema es no acotado) Fin . En caso contrario ir al paso 4.
4. Realizar transformaciones en la tabla para conseguir una nueva matriz unitaria
tomando y
lk
como pivote. Se realizan transformaciones lineales similares a
las que se usan en el mtodo de Gauss, hasta conseguir que la columna k tenga
el valor 1 en el lugar del elemento pivote y 0 en los restantes. De esta forma
obtenemos una nueva solucin bsica factible adyacente a la anterior (para la
ltima la se puede optar por usar la relacin 2.4 de la pgina 53). Con esta
nueva solucin y esta nueva tabla ir al paso 2.
Ejemplo 26 Resolver ahora el problema anterior:
Max z = x
1
+x
2
s.a.:
x
1
+x
2
2
x
1
+ 2x
2
6
2x
1
+x
2
6
x
1
, x
2
0
_

_
1
Como se ver la tabla va evolucionando durante el algoritmo. En general usaremos la siguiente
notacin:
Opt. c
1
c
2
. . . cn 0 0 0 coef. objetivo
x
1
x
2
. . . xn x
n+1
x
n+2
x
n+m
variables
x
b1
c
b1
y
11
y
12
. . . y
1n
y
1 n+1
y
1 n+2
. . . y
1 n+m
x
b
1
x
b2
c
b2
y
21
y
22
. . . y
2n
y
2 n+1
y
2 n+2
. . . y
2 n+m
x
b
2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
x
bm
c
bm
y
m1
y
m2
. . . y
mn
y
m n+1
y
m n+2
. . . y
m n+m
x
b
m
r
1
r
2
. . . rn r
n+1
r
n+2
rn+m Z
0
Los trminos de la matriz de los coecientes se designan en general por y
ij
y los trminos
independientes por x
b
i
.
Los coecientes r
i
que aparecen en la ltima la se suelen llamar costes reducidos de la variable
correspondiente. Estos costes reducidos cumplen la siguiente relacin:
r
j
= c
b1
y
1j
+ c
b2
y
2j
+ . . . c
bm
y
mj
c
j
= z
j
c
j
(2.4)
54 TEMA 2. PROGRAMACIN LINEAL
empleando el algoritmo de Simplex en forma de tabla
Paso 0 La tabla inicial es (introduciendo variables de holgura):
1 1 0 0 0
x
1
x
2
h
1
h
2
h
3
0 h
1
-1 1 1 0 0 2
0 h
2
1 2 0 1 0 6
0 h
3
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:
(x
1
, x
2
, h
1
, h
2
, h
3
) = (0, 0, 2, 6, 6)
con un valor para z = x
1
+x
2
= 0 + 0 = 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.
Paso 2 Comprobar si esta solucin es ptima. No es ptima puesto que hay valores
no negativos de los costes reducidos (los que corresponden a las variables x
1
y
x
2
ambos con valor 1.
Paso 3 a Seleccionamos la primera como variable de entrada k = 1.
Paso 3 b Seleccionamos como variable de salida la que aparezca en la la correspondien-
te al mnimo cociente
x
B
i
y
ik
para los y
ik
> 0. En este caso el valor mnimo se
alcanza cuando: min
_
6
1
,
6
2
_
= min(6, 3) = 3. Corresponde a la tercera la. As
que l = 3. Por lo tanto el elemento pivote es y
31
= 2. La variable de salida es
h
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
x
1
x
2
h
1
h
2
h
3
0 h
1
0
3
2
1 0
1
2
5
0 h
2
0
3
2
0 1
1
2
3
1 x
1
1
1
2
0 0
1
2
3
0
1
2
0 0
1
2
3
La nueva solucin es (x
1
, x
2
, h
1
, h
2
, h
3
) = (3, 0, 5, 3, 0) con un valor para z = 3.
Ir paso 2 Es ptima? No porque algn coste reducido es negativo (el que corresponde
a la variable x
2
que vale
1
2
.
Paso 3 a Seleccionamos x
2
como variable de entrada, por lo tanto k = 2.
2.7. ALGORITMO DEL SIMPLEX EN FORMA DE TABLA (MIN) 55
Paso 3 b Seleccionamos como variable de salida la que aparezca en la la correspondi-
ente al mnimo cociente
x
0
i
y
ik
para los y
ik
> 0. En este caso min
_
5
3
2
,
3
3
2
,
3
1
2
_
=
min
_
10
3
, 2, 6
_
= 2. Corresponde a la segunda la. As que l = 2. Por lo tanto
el elemento pivote es y
22
=
3
2
. La variable de salida es h
2
.
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
x
1
x
2
h
1
h
2
h
3
0 h
1
0 0 1 -1 1 2
0 x
2
0 1 0
2
3

1
3
2
1 x
1
1 0 0 -
1
3
2
3
2
0 0 0
1
3
1
3
4
La nueva solucin es (x
1
, x
2
, h
1
, h
2
, h
3
) = (2, 2, 2, 0, 0) con un valor para z =
4.
Ir paso 2 Es ptima? S, porque ningn coste reducido es negativo. Por lo tanto la
solucin ptima de este problema es x
1
= 2, x
2
= 2.
Los valores de las variables de holgura (h
1
= 2, h
2
= 0, h
3
= 0) sirven para saber
qu restricciones estn saturadas (se cumple la igualdad sustituyendo la solucin
hallada en la restriccin primitiva). En este caso las dos ltimas restricciones estn
saturadas por lo que los recursos segundo y tercero se agotan y, en cambio, sobran
2 unidades del primer recurso, pues h
1
= 2.
2.7 Algoritmo del Simplex en forma de tabla (min)
Si el problema es de minimizacin un procedimiento que puede seguirse es transfor-
mar la funcin objetivo de maximizacin en otra de minimizacin tal como se ha
indicado anteriormente:
Min z =
n

c
j
x
j
Max z

=
n

(c
j
)x
j
; z = z

De esta forma ya se podra aplicar el algoritmo en la forma maximizante.


Tambin cabe la posibilidad de usar un algoritmo especco para este caso, que se
consigue con ligeras modicaciones del anterior. Estas variaciones se reducen a cam-
bios de signo en los costes reducidos. A continuacin indicamos las modicaciones
que habra que hacer en el algoritmo de la forma de maximizacin para obtener un
algoritmo minimizante de Simplex.
56 TEMA 2. PROGRAMACIN LINEAL
El paso 2 sera: Comprobar si esta solucin es ptima. La solucin actual es ptima si
todos los costes reducidos son no positivos (todos son negativos o nulos). Si es
as, parar. En otro caso ir al paso 3.
El paso 3a quedara: Regla de la variable de entrada. Seleccionar para entrar en la base la
variable con r
j
ms positivo. Sea sta la x
k
. Cuando hay varias variables
que tienen este mismo valor, se selecciona arbitrariamente una cualquiera
de stas.
El resto del algoritmo permanecera inalterado.
Ejemplo 27 Dado el programa lineal:
Min Z = x
2
3x
3
+ 2x
5
s.a.:
x
1
+ 3x
2
x
3
+ 2x
5
= 7
2x
2
+ 4x
3
+x
4
= 12
4x
2
+ 3x
3
+ 8x
5
+x
6
= 10
x
1
, x
2
, x
3
, x
4
, x
5
, x
6
0
_

_
resolverlo usando el algoritmo del Simplex en forma minimizante.
Tomamos como variables bsicas: (x
1
, x
4
, x
6
)
Construimos la tabla del Simplex:
Tabla I 0 1 3 0 2 0 sol. bsica
x
1
x
2
x
3
x
4
x
5
x
6
factible
x
1
0 1 3 1 0 2 0 7
x
4
0 0 2 4 1 0 0 12
x
6
0 0 4 3 0 8 1 10
0 1 3 0 2 0 Z
0
= 0
La variable que pasa a ser bsica es x
3
por ser r
3
el ms positivo de los r
j
. Y
deja de ser bsica x
4
pues min
_
12
4
;
10
3
_
=
12
4
= 3.
Si hacemos las transformaciones:
Multiplico la la 2 por 1/4.
Sumo a la la 1 la la 2.
Resto a la la 3 la la 2 multiplicada por 3.
Obtenemos la siguiente tabla:
2.8. BSQUEDA DE SOLUCIONES INICIALES 57
Tabla II 0 1 3 0 2 0 sol. bsica
x
1
x
2
x
3
x
4
x
5
x
6
factible
x
1
0 1
5/2
0 1/4 2 0 10
x
3
3 0 1/2 1 1/4 0 0 3
x
6
0 0 5/2 0 3/4 8 1 1
0
1/2
0 3/4 2 0

Z = 9
Entra en la base x
2
por ser el ms positivo de los r
j
. Y sale x
1
pues es el nico
y
i2
que es positivo.
Si hacemos las transformaciones:
Multiplico la la 1 por 2/5.
Sumo a la la 2 la la 1 multiplicada por 1/5.
Sumo a la la 3 la la 1.
Obtenemos la siguiente tabla:
Tabla III 0 1 3 0 2 0 sol. bsica
x
1
x
2
x
3
x
4
x
5
x
6
factible
x
2
1 2/5 1 0 1/10 4/5 0 4
x
3
3 1/5 0 1 3/10 2/5 0 5
x
6
0 1 0 0 1/2 10 1 11
1/5 0 0 4/5 12/5 0

Z = 11
La solucin asociada a esta base es ptima pues todos los r
j
0, la solucin es:
x
1
= 0 x
2
= 4 x
3
= 5 x
4
= 0 x
5
= 0 x
6
= 11 ;

Z = 11.
2.8 Bsqueda de soluciones iniciales
Vamos a considerar varios casos. Los tres primeros corresponden a recursos no
negativos. En los tres ltimos los recursos pueden ser negativos.:
Primer caso: Hay desigualdades () y b
i
0.
Segundo caso: Hay igualdades y b
i
0.
Tercer caso: Hay desigualdades () y b
i
0
Cuarto caso: Hay desigualdades () y b
i
0.
Quinto caso: Hay igualdades y b
i
0.
Sexto caso: Hay desigualdades () y b
i
0
58 TEMA 2. PROGRAMACIN LINEAL
Primer caso (Desigualdades y b
i
0.).
En este caso, las desigualdades se convierten en igualdades introduciendo varia-
bles de holgura positivas que tienen coeciente nulo en la funcin objetivo. Este
caso ya se ha tratado en la presentacin del algoritmo de simplex.
Segundo caso (Igualdades y b
i
0).
En el caso de que aparezca un signo de igualdad en alguna restriccin, sumamos
una nueva variable positiva que llamamos variable articial:
n

j=1
a
ij
x
j
= b
i
=
n

j=1
a
ij
x
j
+r
i
= b
i
donde r
i
son las variables articiales
A la funcin objetivo le aadimos un nuevo trmino formado por esta variable
articial que tendr coeciente negativo y valor absoluto "muy grande" si el prob-
lema es de maximizacin y con coeciente coeciente positivo y valor absoluto "muy
grande" si el problema es de minimizacin. Con ello se consigue que la variable
articial salga de la base y sea nula, lo que permite eliminarla.
Tercer caso (Desigualdades () y b
i
0)
Si el signo de la restriccin es de () restamos en primer lugar una variable
de holgura positiva para transformarla en una igualdad. Cuando ya tenemos una
igualdad sumamos una variable articial tal como hemos explicado en el prrafo
anterior. Es decir ahora tenemos dos variables nuevas, una articial que se aadira a
la funcin objetivo con un coeciente "muy grande" si el problema es de minimizacin
(o "muy pequeo" si es de maximizacin), y una de holgura que se suma a la funcin
objetivo con coeciente nulo.
n

j=1
a
ij
x
j
b
i
=
n

j=1
a
ij
x
j
t
i
+r
i
= b
i
donde r
i
son las variables articiales, y t
i
son las variables de holgura.
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
Ejemplo 28 Dado el programa lineal:
Max Z = 3x
1
+ 2x
2
+x
3
s.a.:
x
1
+ 2x
2
+x
3
10
x
1
+x
2
+ 2x
3
9
2x
1
+ 3x
3
12
x
1
, x
2
, x
3
0
_

_
Si introducimos las variables de holgura positivas tendremos el programa equi-
valente:
Max Z = 3x
1
+ 2x
2
+x
3
s.a.:
x
1
+ 2x
2
+x
3
+x
4
= 10
x
1
+x
2
+ 2x
3
+x
5
= 9
2x
1
+ 3x
3
+x
6
= 12
x
1
, x
2
, x
3
, x
4
, x
5
, x
6
0
_

_
Tomamos como variables bsicas las de holgura: x
4
, x
5
, x
6
. Por tanto una solucin
bsica factible inicial es:
x
1
= 0 x
2
= 0 x
3
= 0 x
4
= 10 x
5
= 9 x
6
= 12 ; Z
0
= 0
Construimos la tabla del Simplex:
Tabla I 3 2 1 0 0 0 sol. bsica
x
1
x
2
x
3
x
4
x
5
x
6
factible
x
4
0 1 2 1 1 0 0 10
x
5
0 1 1 2 0 1 0 9
x
6
0 2 0 3 0 0 1 12
-3 2 1 0 0 0 Z
0
= 0
Entra en la base x
1
por ser el ms negativo de los r
j
.
Y sale x
6
pues: min
_
9
1
;
10
1
;
12
2
_
=
12
2
= 6.
Si hacemos las transformaciones:
Multiplico la la 3 por 1/2.
Sumo a la la 1 la la 3 multiplicada por (-1/2).
sumo a la la 2 la la 3 multiplicada por (-1/2).
Obtenemos la siguiente tabla:
60 TEMA 2. PROGRAMACIN LINEAL
Tabla II 3 2 1 0 0 0 sol. bsica
x
1
x
2
x
3
x
4
x
5
x
6
factible
x
4
0 0 2 1/2 1 0 1/2 4
x
5
0 0 1 1/2 0 1 1/2 3
x
1
3 1 0 3/2 0 0 1/2 6
0 -2 7/2 0 0 3/2 Z = 18
Entra en la base x
2
porque le corresponde el ms negativo de los r
j
. Y sale x
4
pues: min
_
3
1
;
4
2
_
=
4
2
= 2.
Si hacemos las transformaciones:
Multiplico la la 1 por 1/2.
Sumo a la la 2 la la 1 multiplicada por (-1/2).
Obtenemos la siguiente tabla:
Tabla III 3 2 1 0 0 0 sol. b sica
x
1
x
2
x
3
x
4
x
5
x
6
factible
x
2
2 0 1 1/4 1/2 0 1/4 2
x
5
0 0 0 3/4 1/2 1 1/4 1
x
1
3 1 0 3/2 0 0 1/2 6
0 0 3 1 0 1

Z = 22
La solucin asociada a esta base es ptima pues todos los r
j
0, la solucin es:
x
1
= 6 x
2
= 2 x
3
= 0 ;

Z = 22.
Las variables de holgura no se han incluido en la solucin ptima.
El valor para la variable de holgura x
5
= 1 signica que una unidad del segundo
recurso no se ha gastado.
Ejemplo 29 Dado el programa lineal:
Max Z = x
1
+ 2x
2
s.a.:
x
1
2x
2
4
x
1
5x
2
8
x
1
, x
2
0
_
_
_
Si introducimos las variables de holgura positivas tendremos el programa equi-
valente:
Max Z = x
1
+ 2x
2
s.a.:
x
1
2x
2
+x
3
= 4
x
1
5x
2
+x
4
= 8
x
1
, x
2
, x
3
, x
4
0
_
_
_
2.8. BSQUEDA DE SOLUCIONES INICIALES 61
Y por tanto una solucin bsica factible inicial es:
x
1
= 0 x
2
= 0 x
3
= 4 x
4
= 8; Z
0
= 0
Construimos la tabla del Simplex:
Tabla I 1 2 0 0 sol. bsica
x
1
x
2
x
3
x
4
factible
x
3
0 1 2 1 0 4
x
4
0 1 5 0 1 8
1 -2 0 0
La solucin es no acotada o ilimitada pues todos los y
i2
< 0 ya que y
11
= 2 < 0,
y
12
= 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 x
1
= 0 obtenemos una de estas
direcciones:
_

_
x
1
= 0
x
2
= x
2
x
3
= 4 + 2x
2
x
4
= 8 + 5x
2
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.
Ejemplo 30 Dado el programa lineal:
Min Z = 3x
1
+ 5x
2
s.a.:
x
1
4
x
2
6
3x
1
+ 2x
2
18
x
1
, x
2
0
_

_
Si introducimos las variables de holgura positivas, y una variable articial x
6
tendremos el programa no equivalente:
Min Z = 3x
1
+ 5x
2
+mx
6
s.a.:
x
1
+x
3
= 4
x
2
+x
4
= 6
3x
1
+ 2x
2
x
5
+x
6
= 18
x
1
, x
2
, x
3
, x
4
, x
5
, x
6
0
_

_
De esta forma hemos construido un programa no equivalente, con una variable
articial. En el caso en que todas las variables articiales que se tengan que intro-
ducir sean nulas el programa equivalente al inicial. El problema se resuelve usando
62 TEMA 2. PROGRAMACIN LINEAL
el mtodo de las penalizaciones (o de la m grande), que estudiamos en el siguiente
epgrafe.
2.8.1 Mtodo de las Penalizaciones
Caso Maximizante. A las variables articiales se les pone costo muy bajo (m)
en la funcin objetivo (Z), para que salgan rpidamente de la base.
Caso Minimizante. A las variables articiales se les pone costo muy alto (m)
+ en la funcin objetivo (Z), para que salgan rpidamente de la base.
Teorema 7 Dado un programa lineal con variables articiales y dada la solucin
bsica factible ptima X
B
= B
1
b, si alguna de las variables articiales es bsica,
y con valor positivo, entonces el problema original es no factible.
Para ilustrar este mtodo y este teorema realizamos dos ejemplos. En el primero,
continuamos con el ejemplo 30.
Ejemplo 31 Resolver el problema dado en el ejemplo 30 .
Construimo la tabla inicial del Simplex, usando el mtodo de las penalizaciones:
La solucin bsica factible inicial era:
x
1
= 0 x
2
= 0 x
3
= 4 x
4
= 6 x
5
= 0 x
6
= 18; Z
0
= 18m
La tabla inicial del Simplex es:
Tabla I 3 5 0 0 0 m sol. bsica
Min x
1
x
2
x
3
x
4
x
5
x
6
factible
x
3
0 1 0 1 0 0 0 4
x
4
0 0 1 0 1 0 0 6
x
6
m 3 2 0 0 1 1 18
r
j
3 5 0 0 0 m 0
Para que x
6
pueda actuar como variable bsica tendra que tener un cero en su
coste reducido. Para conseguirlo podemos sumar a la ltima la la tercera multipli-
cada por m, obtenindose:
Tabla I 3 5 0 0 0 m sol. bsica
Min x
1
x
2
x
3
x
4
x
5
x
6
factible
x
3
0 1 0 1 0 0 0 4
x
4
0 0 1 0 1 0 0 6
x
6
m 3 2 0 0 1 1 18
r
j
3m3 2m5 0 0 m 0 Z
0
= 18m
2.8. BSQUEDA DE SOLUCIONES INICIALES 63
Esta tabla puede escribirse tambin directamente si calculamos la ltima la
usando la expresin de los costes reducidos dada en 2.4 de la pgina 53.
As, entra en la base x
1
por ser r
1
el mayor coste reducido y sale de la base x
3
,
pues hace mnimo el cociente 4/1 y 18/3. Si construimos la nueva tabla del Simplex
obtenemos:
Tabla II 3 5 0 0 0 m sol. bsica
Min x
1
x
2
x
3
x
4
x
5
x
6
factible
x
1
3 1 0 1 0 0 0 4
x
4
0 0 1 0 1 0 0 6
x
6
m 0 2 3 0 1 1 6
r
j
0 2m5 3m+ 3 0 m 0 Z = 6m+ 12
Entra en la base x
2
por ser r
2
el mayor, y sale de la base x
6
pues es el que hace
mnimo el cociente 6/1 y 6/2. Si construimos la nueva tabla del Simplex:
Tabla III 3 5 0 0 0 m sol. bsica
Min x
1
x
2
x
3
x
4
x
5
x
6
factible
x
1
3 1 0 1 0 0 0 4
x
4
0 0 0 3/2 1 1/2 1/2 3
x
2
5 0 1 3/2 0 1/2 1/2 3
r
j
0 0 9/2 0 5/2 5/2 m

Z = 27
La solucin ptima es x
1
= 4, x
2
= 3 , con z = 27.
La variable de holgura x
4
= 3 se interpreta como que el segundo recurso no se
gasta, y quedan 3 unidades.
Ejemplo 32 Dado el programa lineal:
Min Z = x
1
2x
2
+ 3x
3
s.a.:
2x
1
+x
2
+ 3x
3
= 2
2x
1
+ 3x
2
+ 4x
3
= 1
x
1
, x
2
, x
3
0
_
_
_
Si introducimos las variables articiales x
4
, x
5
tendremos el programa no equi-
valente:
Min Z = x
1
2x
2
+ 3x
3
+mx
4
+mx
5
s.a.:
2x
1
+x
2
+ 3x
3
+x
4
= 2
2x
1
+ 3x
2
+ 4x
3
+x
5
= 1
x
1
, x
2
, x
3
, x
4
, x
5
0
_
_
_
As hemos construido un programa no equivalente con variables articiales, que
en el caso en que todas las variables articiales sean nulas, ser un programa equi-
valente al inicial.
64 TEMA 2. PROGRAMACIN LINEAL
El sistema es equivalente al inicial si las variables articiales son nulas: x
4
=
x
5
= 0.
La solucin bsica factible inicial es:
x
1
= 0 x
2
= 0 x
3
= 0 x
4
= 2 x
5
= 1; Z
0
= 3m
Construimos la tabla del Simplex:
Tabla I 1 2 3 m m sol. bsica
Min x
1
x
2
x
3
x
4
x
5
factible
x
4
m 2 1 3 1 0 2
x
5
m 2 3 4 0 1 1
r
j
1 4m+ 2 7m3 0 0 Z
0
= 3m
As, entra en la base x
3
por ser r
3
el mayor y sale de la base a
5
, pues hace mnimo
el cociente 2/3 y 1/4. Si construimos la nueva tabla del Simplex obtenemos:
Tabla II 1 2 3 m m sol. bsica
Min x
1
x
2
x
3
x
4
x
5
factible
x
4
m 7/2 5/4 0 1 3/4 5/4
x
3
3 1/2 3/4 1 0 1/4 1/4
r
j

7
2
m+
1
2

5
4
m+
17
4
0 0
7
4
m+
3
4
Z = 5m+
3
4
As, el problema original es no factible, porque he llegado a la tabla ptima, y la
variable articial x
4
no ha salido de la base, y tiene un valor positivo x
4
= 5/4.
2.9 Algoritmo del Simplex en forma matricial
Si partimos de la forma matricial
Opt. Z = c

X
s.a.: AX = b
X 0
_
_
_
siendo
c =
_
_
_
_
_
c
1
c
2
.
.
.
c
n
_
_
_
_
_
, X =
_
_
_
_
_
x
1
x
2
.
.
.
x
n
_
_
_
_
_
, b =
_
_
_
_
_
b
1
b
2
.
.
.
b
m
_
_
_
_
_
y A =
_
_
_
a
11
. . . a
1n
.
.
.
.
.
.
.
.
.
a
m1
. . . a
mn
_
_
_.
y considerando, sin prdida de generalidad, que las n primeras columnas de A co-
rresponden a la matriz bsica B asociada a una solucin bsica factible, que N es
2.9. ALGORITMO DEL SIMPLEX EN FORMA MATRICIAL 65
la matriz formada por las restantes columnas y que X
B
, X
N
, c
B
, c
N
son, respecti-
vamente, las matrices formadas por las variables bsicas, las no bsicas, los costes
de las variables bsicas y los costes de la variables no bsicas, entonces el problema
puede expresarse en la forma:
Max Z = (c

B
, c

N
)
_
X
B
XN
_
= c

B
X
B
+c

N
X
N
s.a.:
_
B N
_ _
XB
X
N
_
= BX
B
+NX
N
= b
X 0
_
_
_
Multiplicando por B
1
el sistema formado por las restricciones, se obtiene:
B
1
BX
B
+B
1
NX
N
= B
1
b
y por tanto
X
B
= B
1
b B
1
NX
N
Sustituyendo en la funcin objetivo este valor de X
B
tenemos:
Z = (c

B
, c

N
)
_
X
B
XN
_
= c

B
X
B
+c

N
X
N
= c

B
_
B
1
b B
1
NX
N
_
+c

N
X
N
=
= c

B
B
1
b +
_
c

N
c

B
B
1
N
_
X
N
.
En el caso particular de la solucin bsica asociada a esta matriz B, X
N
= 0,
por lo que las dos ltimas expresiones tomarn la forma:
X
B
= B
1
b = X
0
B
y Z = c

B
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:
X
B
= X
0
B
B
1
NX
N
,
Z = Z
0
+
_
c

N
c

B
B
1
N
_
X
N
= Z
0

_
c

B
B
1
N c

N
_
X
N
.
Dependiendo de los valores de los elementos de la matriz
_
c

B
B
1
N c

N
_
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 x
j
X
N
dentro de las condiciones
de factibilidad X
0
B
B
1
NX
N
0.
66 TEMA 2. PROGRAMACIN LINEAL
2.9.1 Mtodo del Simplex en forma matricial (caso maxi-
mizante)
Paso 1 Partir de una solucin bsica factible X
B
= B
1
b =X
0
B
y Z = c

B
B
1
b =
Z
0
.
Paso 2 Si c

N
c

B
B
1
N 0 la solucin actual es ptima. Fin. Si no es as ir al
paso 3
Paso 3 .
Paso 3a Regla de la variable de entrada: Seleccionar para entrar en la
base la variable no bsica de X
N
cuyo coeciente en
_
c

B
B
1
N c

N
_
sea
lo menor posible. (el ms negativo).
Paso 3b Regla de la variable de salida: Se selecciona la variable de salida
de forma que la variable de entrada considerada anteriormente pueda
tomar el mayor valor posible dentro de las condiciones de factibilidad
X
0
B
B
1
NX
N
0.
Paso 4 Tomando ahora esta nueva matriz bsica ir al paso 1.
Vamos a aplicar este enfoque del mtodo del Simplex al ejemplo que aparece a
continuacin.
Ejemplo 33 Dado el programa lineal:
Max Z = 2x
1
3x
2
+ 10x
3
s.a.:
x
1
+ 2x
2
+x
3
= 4
2x
1
+x
2
+ 5x
3
= 5
x
1
, x
2
, x
3
0
_
_
_
B = (a
1
, a
2
) =
_
1 2
2 1
_
=
= B
1
=
_
1/3 2/3
2/3 1/3
_
, N = (a
3
) =
_
1
5
_
Ordenamos los clculos de la forma siguiente:
B
1
_
B
.
.
.N
.
.
.b
_
=
_
B
1
B
.
.
.B
1
N
.
.
.B
1
b
_
=
_
I
.
.
.B
1
N
.
.
.B
1
b
_
_
1/3 2/3
2/3 1/3
__
1 2
2 1
1
5
4
5
_
=
_
1 0
0 1
3
-1
2
1
_
X
0
B
= B
1
b =
_
2
1
_
, Z
0
= c

B
B
1
b =
_
2 3
_
_
2
1
_
= 1
2.10. ADAPTACIN ALGEBRAICA DEL ALGORITMO DEL SIMPLEX 67
Es esta solucin ptima?
c

B
B
1
N c

N
=
_
2 3
_
_
3
1
_
(10) = (9 10) = (1) .
Por ser negativo, la solucin puede mejorar. Entra en la base x
3
.
Las condiciones de factibilidad son:
X
0
B
B
1
NX
N
=
_
2
1
_

_
3
1
_
x
3
=
_
2 3x
3
1 +x
3
_
0 .
Ha de cumplirse que 2 3x
3
0, ya que 1 + x
3
es siempre mayor o igual que
cero si lo es x
3
. El mejor valor para x
3
=
2
3
. Si damos este valor, la variable x
1
= 0
y sale de la base.
Las nuevas variables bsicas son x
2
y x
3
. Partiendo ahora de la matriz transfor-
mada resultante
_
1 0
0 1
3
-1
2
1
_
B =
_
0 3
1 1
_
1
=
_
1
3
1
1
3
0
_
_
1
3
1
1
3
0
__
1 0
0 1
3
-1
2
1
_
=
_
1
3
1
1
3
0
0
1
5
3
2
3
_
_
x
2
x
3
_
0
= X
0
B
= B
1
b =
_
5
3
2
3
_
,
Z
0
= c

B
B
1
b =
_
3 10
_
_
5
3
2
3
_
=
5
3
.
c

B
B
1
N c

N
=
_
3 10
_
_
1
3
1
3
_
2 =
1
3
.
Por lo tanto la solucin actual x
1
= 0, x
2
= 5/3, x
3
= 2/3; z = 5/3; es ptima.
2.10 Adaptacin algebraica del algoritmo del Sim-
plex
Denimos algunas magnitudes y concretamos algunos conceptos:
68 TEMA 2. PROGRAMACIN LINEAL
Sea el programa lineal:
Opt. Z = c
t
X
s.a.: AX = b
X 0
_
_
_
donde r(A) = m y B = (a
1
, a
2
, . . . , a
m
).
Si tenemos algn a
j
que no est en la base B, entonces podemos expresarlo como
combinacin lineal de los vectores de B, de la forma:
a
j
= y
1j
a
1
+y
2j
a
2
+ +y
mj
a
m
= B y
j
donde y
j
=
_
_
_
_
y
1j
y
2j
. . .
y
mj
_
_
_
_
As tenemos un procedimiento, pues y
j
= B
1
a
j
.
Hay un caso particular muy importante, cuando la base inicial coincide con la
matriz identidad tendremos que B = I y por tanto y
j
= a
j
.
Denimos el escalar z
j
como z
j
= c
t
B
y
j
. = c

B
B
1
a
j
.
2.10.1 Algoritmo del Simplex (enfoque algebraico)
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:
Mejorar lo ms posible la funcin objetivo.
Mantener la factibilidad (no deben salir soluciones bsicas no factibles).
Para ello necesitamos:
Regla para la variable de salida (Mantener la factibilidad).
Regla para la variable de entrada (Mejorar la funcin objetivo).
Demostracin de la Regla para la variable de salida.
Suponemos que la base B = (a
1
, a
2
, a
3
) y a
j
es el vector que no est en B y que va
a entrar en la nueva base.
Supongamos que las variables bsicas son x
1
, x
2
, x
3
, y que x
j
es variable no
bsica. Si las variables toman los valores:
x
1
= x
0
1
x
2
= x
0
2
x
3
= x
0
3
x
j
= 0.
2.10. ADAPTACIN ALGEBRAICA DEL ALGORITMO DEL SIMPLEX 69
Al introducir a
j
en la nueva base tendremos:
x
1
= x
1
x
2
= x
2
x
3
= x
3
x
j
= 0.
siendo alguna de las variables x
1
, x
2
, x
3
igual a cero y el resto son mayores o iguales
a cero.
Como ambas soluciones deben ser factibles tendr que cumplirse:
x
0
1
a
1
+x
0
2
a
2
+x
0
3
a
3
= b
x
1
a
1
+ x
2
a
2
+ x
3
a
3
+a
j
= b
_
=
x
0
1
a
1
+x
0
2
a
2
+x
0
3
a
3
= x
1
a
1
+ x
2
a
2
+ x
3
a
3
+a
j
(2.5)
Como a
j
es combinacin lineal de los vectores de la base, tendremos que:
a
j
= y
1j
a
1
+y
2j
a
2
+y
3j
a
3
(2.6)
Si sustituimos (2.6) en (2.5) tenemos:
x
0
1
a
1
+x
0
2
a
2
+x
0
3
a
3
= x
1
a
1
+ x
2
a
2
+ x
3
a
3
+(y
1j
a
1
+y
2j
a
2
+y
3j
a
3
)
x
0
1
a
1
+x
0
2
a
2
+x
0
3
a
3
= ( x
1
+y
1j
)a
1
+ ( x
2
+y
2j
)a
2
+ ( x
3
+y
3j
)a
3
_
_
_
x
0
1
= x
1
+y
1j
x
0
2
= x
2
+y
2j
x
0
3
= x
3
+y
3j
y despejando queda
_
_
_
x
1
= x
0
1
y
1j
x
2
= x
0
2
y
2j
x
3
= x
0
3
y
3j
(2.7)
donde algn x
1
, x
2
, x
3
debe ser cero, esto es:
x
0
1
y
1j
= 0 x
0
2
y
2j
= 0 x
0
3
y
3j
= 0
o equivalentemente
=
x
0
1
y
1j
=
x
0
2
y
2j
=
x
0
3
y
3j
(2.8)
Como ha de ser positivo o cero, y x
0
1
, x
0
2
, x
0
3
lo son, podemos desechar las columnas
para las que y
ij
0.
Para las que cumplen que y
ij
> 0 tendremos que como x
1
, x
2
, x
3
han de ser
mayores o iguales que cero, y por tanto de (2.7) deducimos que:
x
0
1
y
1j
0
x
0
2
y
2j
0
x
0
3
y
3j
0
_
_
_
=

x
0
1
y
1j

x
0
2
y
2j

x
0
3
y
3j
_

_
(2.9)
70 TEMA 2. PROGRAMACIN LINEAL
Como pretendemos que cumpla (2.8) y (2.9) tendremos:
= min
_
x
0
i
y
ij
; y
ij
> 0
_
Y sta es la regla para la variable de salida, aquella que hace mnimo el cociente
x
0
i
y
ij
tal que y
ij
> 0, siendo x
j
la variable de entrada en la base.
Como regla de la variable de salida tenemos que dada la solucin bsica factible
X
B
= B
1
b, siendo el vector a
j
que entra en la base, y
ij
> 0 para algn i, entonces
saldr de la base aquel vector a
k
que verique:
x
0
k
y
kj
= min
_
x
0
i
y
ij
; y
ij
> 0
_
.
Demostracin de la Regla para la variable de entrada.
Sea B = (a
1
, a
2
, a
3
) y sea a
j
que no est en la base B. Si las variables toman los
valores:
_
_
_
x
1
= x
0
1
x
2
= x
0
2
x
3
= x
0
3
= Z
0
= c
1
x
0
1
+c
2
x
0
2
+c
3
x
0
3
.
Al introducir a
j
en la nueva base tendremos:
_

_
x
1
= x
1
x
2
= x
2
x
3
= x
3
x
j
= .
=

Z = c
1
x
1
+c
2
x
2
+c
3
x
3
.
Si usamos las relaciones obtenidas anteriormente (2.7) tendremos:

Z = c
1
(x
0
1
y
1j
) +c
2
(x
0
2
y
2j
) +c
3
(x
0
3
y
3j
) +c
j
= (2.10)
= c
1
x
0
1
+c
2
x
0
2
+c
3
x
0
3
c
1
y
1j
c
2
y
2j
c
3
y
3j
+c
j
=
= Z
0
(c
1
y
1j
+c
2
y
2j
+c
3
y
3j
c
j
) = Z
0
(z
j
c
j
).
pues ya hemos denido que z
j
= c
t
B
y
j
siendo y
j
=
_
_
_
_
y
1j
y
2j

y
mj
_
_
_
_
.
De la expresin (2.10) se obtienen dos conclusiones:
Para el caso maximizante: Dada la solucin bsica factible X
B
= B
1
b con
un valor para la funcin objetivo Z
0
= c
t
B
X
B
, la actual solucin es ptima si
z
j
c
j
0 para toda columna a
j
de A. Veamos:

Z = Z
0
(z
j
c
j
) y como 0 y z
j
c
j
0 =
=

Z Z
0
.
2.10. ADAPTACIN ALGEBRAICA DEL ALGORITMO DEL SIMPLEX 71
Y por tanto Z
0
es el valor mximo.
Por tanto concluimos como regla para la variable de entrada:
Dada la solucin factible bsica X
B
= B
1
b, la variable de entrada ser
aquella que proporcione un valor ms negativo de z
j
c
j
.
Para el caso minimizante: Dada la solucin bsica factible X
B
= B
1
b con
un valor para la funcin objetivo Z
0
= c
t
B
X
B
, la actual solucin es ptima si
z
j
c
j
0 para toda columna a
j
de A.
Y por tanto concluimos como regla para la variable de entrada:
Dada la solucin factible bsica X
B
= B
1
b, la variable de entrada ser
aquella que proporcione un valor ms positivo de z
j
c
j
.
Soluciones ptimas alternativas.
Teorema 8 Dada la solucin bsica factible X
B
= B
1
b ptima, si existe algn a
j
fuera de la base para el que se cumpla que z
j
c
j
= 0, el problema tiene soluciones
alternativas.
Caso particular: Si z
j
c
j
= 0; a
j
no est en la base B, pero no hay ningn
y
ij
> 0, no podemos sacar ninguna a
i
de la base. Cuando sto ocurre decimos que
hay un rayo ptimo (una serie de variables que pueden tomar valores innitos pero
que dan unos valores nitos en la tabla).
Soluciones no acotadas.
En el caso maximizante tenemos que hay algn z
j
c
j
< 0 y a
j
es un vector que no
est en la base y todos los y
ij
0.
Teorema 9 Dada X
B
= B
1
b solucin bsica factible, si para alguna columna a
j
no bsica es z
j
c
j
< 0 con y
ij
0 para todo i, el problema es no acotado.
Demostracin:
Supongamos que la base consta de 3 vectores, y que stos son los tres primeros. As:
B = (a
1
, a
2
, a
3
) a
j
no b asico z
j
c
j
< 0 y
y
1j
0 y
2j
0 y
3j
0.
Pero como el vector a
j
se puede expresar como combinacin lineal de B entonces:
a
j
= y
1j
a
1
+y
2j
a
2
+y
3j
a
3
(2.11)
Sea la solucin bsica factible: x
1
= x
0
1
; x
2
= x
0
2
; x
3
= x
0
3
.
72 TEMA 2. PROGRAMACIN LINEAL
Expresndolo vectorialmeante tenemos:
x
0
1
a
1
+x
0
2
a
2
+x
0
3
a
3
= b (2.12)
Si multiplicamos la expresin (2.11) por > 0 entonces:
y
1j
a
1
+y
2j
a
2
+y
3j
a
3
= a
j
(2.13)
Si restamos (2.12) - (2.13) obtenemos:
(x
0
1
y
1j
)a
1
+ (x
0
2
y
2j
)a
2
+ (x
0
3
y
3j
)a
3
+a
j
= b.
As obtenemos una solucin del sistema de restricciones:
x
1
= x
0
1
y
1j
x
2
= x
0
2
y
2j
x
3
= x
0
3
y
3j
x
j
=
que es una solucin factible no bsica. Si buscamos la solucin ptima:

Z = c
1
(x
0
1
y
1j
) +c
2
(x
0
2
y
2j
) +c
3
(x
0
3
y
3j
) +c
j
=
= c
1
x
0
1
+c
2
x
0
2
+c
3
x
0
3
c
1
y
1j
c
2
y
2j
c
3
y
3j
+c
j
=
= Z
0
(c
1
y
1j
+c
2
y
2j
+c
3
y
3j
c
j
) =
= Z
0
(z
j
c
j
) como > 0 y z
j
c
j
< 0 =
=

Z > Z
0
.
Como es arbitrario, puedo hacerlo tan grande como quiera, es decir no acotarlo.
La solucin ptima aumentar al aumentar .
2.10.2 Mtodo del Simplex en forma de tabla (Usando z
j
c
j
en la ltima la)
Opt. c
1
c
2
. . . . . . . . . c
n
coef. objetivo
x
1
x
2
. . . . . . . . . x
n
variables
x
1
c
1
y
11
y
12
. . . . . . . . . y
1n
x
0
1
x
2
c
2
y
21
y
22
. . . . . . . . . y
2n
x
0
2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
x
m
c
m
y
m1
y
m2
. . . . . . . . . y
mn
x
0
m
z
j
c
j
z
1
c
1
z
2
c
2
. . . . . . . . . z
n
c
n
Z
0
Si B = I
m
= y
j
= B
1
a
j
= a
j
.
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 z
j
c
j
0, la solucin es ptima Fin
Si z
j
c
j
< 0 para alguna variable, ir al paso 3.
Paso 3a:
Seleccionar para entrar en la base la columna con z
j
c
j
ms negativo. Sea sta la
a
k
.
Paso 3b:
Seleccionar para salir de la base el que haga mnimo el cociente
x
0
i
y
ik
para los y
ik
> 0.
Sea la la r.
(Si todos los y
ik
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 y
rk
como pivote. Calcular z
j
c
j
usando la expresin

m
i=1
c
i
y
ij
c
j
(2.14)
Paso 5:
Volver al paso 2.
Ejemplo 34 Resolver el programa lineal, usando el mtodo del Simplex en forma
de tabla.
Max Z = 3x
1
+ 2x
2
2x
3
+x
4
s.a.:
2x
1
+ 3x
2
+x
3
= 12
2x
1
+x
2
+x
4
= 8
x
1
, x
2
, x
3
, x
4
0
_
_
_
Tomamos como base:
B = (a
3
, a
4
) = I
2
74 TEMA 2. PROGRAMACIN LINEAL
Construimos la tabla del Simplex:
Tabla I 3 2 2 1 Sol. bsica
x
1
x
2
x
3
x
4
factible
x
3
2 2 3 1 0 12
x
4
1 2 1 0 1 8
z
j
c
j
5 7 0 0 Z
0
= 16
Entra en la base a
2
por ser el ms negativo.
Y sale a
3
pues min
_
12
3
;
8
1
_
=
12
3
= 4.
Si hacemos las transformaciones siguientes:
Divido la la 1 por 3 (multiplico por 1/3).
Resto a la la 2 la la 1.
Obtenemos la siguiente tabla:
Tabla II 3 2 2 1 Sol. bsica
x
1
x
2
x
3
x
4
factible
x
2
2 2/3 1 1/3 0 4
x
4
1
4/3
0 1/3 1 4
z
j
c
j
-1/3
0 7/3 0 Z = 12
Entra en la base a
1
por ser z
1
c
1
< 0 el nico negativo. Como variable de salida
hacemos:
min
_
4
2/3
;
4
4/3
_
= min{6, 3} = 3.
Y por tanto sale de la base a
4
.
Hacemos las transformaciones siguientes:
Multiplico por 3/4 la la 3.
Resto a la la 1 la la 2 por 2/3.
Obtenemos la siguiente tabla:
Tabla III 3 2 2 1 Sol. bsica
x
1
x
2
x
3
x
4
factible
x
2
2 0 1 1/2 1/2 2
x
1
1 1 0 1/4 3/4 3
z
j
c
j
0 0 9/4 1/4 Z = 13
La solucin asociada a esta base es ptima pues todos los z
j
c
j
0, la solucin
es:
x
1
= 3 x
2
= 2 x
3
= 0 x
4
= 0 ;

Z = 13.
2.10. ADAPTACIN ALGEBRAICA DEL ALGORITMO DEL SIMPLEX 75
La base ptima es
B = (a
2
, a
1
) =
_
3 2
1 2
_
= B
1
=
_
1/2 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.
Ejemplo 35 Resolver el programa lineal, usando el mtodo del Simplex en forma
de tabla.
Min Z = x
2
3x
3
+ 2x
5
s.a.:
x
1
+ 3x
2
x
3
+ 2x
5
= 7
2x
2
+ 4x
3
+x
4
= 12
4x
2
+ 3x
3
+ 8x
5
+x
6
= 10
x
1
, x
2
, x
3
, x
4
, x
5
, x
6
0
_

_
Tomamos como base:
B = (a
1
, a
4
, a
6
) = I
3
Construimos la tabla del Simplex:
Tabla I 0 1 3 0 2 0 Sol. bsica
x
1
x
2
x
3
x
4
x
5
x
6
factible
x
1
0 1 3 1 0 2 0 7
x
4
0 0 2 4 1 0 0 12
x
6
0 0 4 3 0 8 1 10
z
j
c
j
0 1 3 0 2 0 Z
0
= 0
Entra en la base a
3
por ser el ms positivo de los z
j
c
j
.
Y sale a
4
pues min
_
12
4
;
10
3
_
=
12
4
= 3.
Si hacemos las transformaciones siguientes:
Multiplico la la 2 por 1/4.
Sumo a la la 1 la la 2.
Resto a la la 3 la la 2 multiplicada por 3.
Obtenemos la siguiente tabla:
76 TEMA 2. PROGRAMACIN LINEAL
Tabla II 0 1 3 0 2 0 Sol. bsica
x
1
x
2
x
3
x
4
x
5
x
6
factible
x
1
0 1
5/2
0 1/4 2 0 10
x
3
3 0 1/2 1 1/4 0 0 3
x
6
0 0 5/2 0 3/4 8 1 1
z
j
c
j
0
1/2
0 3/4 2 0

Z = 9
La la de los costes reducidos se obtiene por medio de la expresin 2.14. Por
ejemplo:
z
2
c
2
= 0
5
2
3
_

1
2
_
+ 0
_

5
2
_
1 =
1
2
Entra en la base a
2
por ser el ms positivo de los z
j
c
j
. Y sale a
1
pues es el
nico y
i2
que es positivo.
Si hacemos las transformaciones que aparecen a continuacin:
Multiplico la la 1 por 2/5.
Sumo a la la 2 la la 1 multiplicada por 1/5.
Sumo a la la 3 la la 1.
Obtenemos la siguiente tabla:
Tabla III 0 1 3 0 2 0 Sol. bsica
x
1
x
2
x
3
x
4
x
5
x
6
factible
x
2
1 2/5 1 0 1/10 4/5 0 4
x
3
3 1/5 0 1 3/10 2/5 0 5
x
6
0 1 0 0 1/2 10 1 11
z
j
c
j
1/5 0 0 4/5 12/5 0

Z = 11
La solucin asociada a esta base es ptima pues todos los z
j
c
j
0, la solucin
es:
x
1
= 0 x
2
= 4 x
3
= 5 x
4
= 0 x
5
= 0 x
6
= 11 ;

Z = 11.
La base ptima es
B = (a
2
, a
3
, a
6
) =
_
_
3 1 0
2 4 0
4 3 1
_
_
= B
1
=
_
_
2/5 1/10 0
1/5 3/10 0
1 1/2 1
_
_
.
2.11 Otros algoritmos de programacin lineal
Vamos a estudiar ahora otros algoritmos de programacin lineal:
2.11. OTROS ALGORITMOS DE PROGRAMACIN LINEAL 77
2.11.1 Mtodo de las dos fases
Este algoritmo suele utilizarse cuando hay igualdades o desigualdades del tipo ,
y por tanto sera necesario aadir variables articiales. Consta de dos fases: La
primera de ellas consiste en minimizar la suma de las variables articiales. En esta
primera fase todas las variables articiales han de resultar nulas. En caso contrario
el problema no tiene solucin (es infactible).
Fase 1:
Paso 0: Escribir el programa en forma estndar, aadiendo variables arti-
ciales.
Paso 1: Considerar la funcin objetivo Z

{minimizante o maximizante}, que


se obtiene incorporando al objetivo las variables articiales con coe-
cientes {1 o -1} y asignando coeciente cero al resto.
Paso 2: Aplicar el algoritmo del Simplex, con la funcin objetivo descrita en
el paso 1. Si en la solucin ptima aparecen variables articiales con valor
positivo, el problema original es no factible Fin .
Si no ocurre, ir a la fase 2.
Fase 2:
Paso 3: Considerar la funcin objetivo original, con coeciente c
j
= 0 para
las variables articiales que aparezcan en la base ptima del paso 2. Se
prescindir de las variables articiales no bsicas y se actualizarn los
z
j
c
j
.
Paso 4: Si en la funcin objetivo del paso 3 no hay variables articiales aplicar
el algoritmo del Simplex al nuevo programa hasta obtener la solucin
ptima.
Paso 5: Si en la funcin objetivo del paso 3 hubiera variables articiales,
aplicar el algoritmo del Simplex con esta modicacin en la variable de
salida:
Si x
k
es la variable de entrada e y
ik
< 0 para alguna variable articial x
i
,
elegir x
i
como variable de salida, e y
ik
como pivote.
Ejemplo 36 Resolver el programa lineal usando el mtodo de las dos fases.
Min Z = 3x
1
+ 5x
2
s.a.:
x
1
4
x
2
6
3x
1
+ 2x
2
18
x
1
, x
2
0
_

_
Si introducimos las variables de holgura positivas, y una variable articial x
6
tendremos el programa no equivalente:
78 TEMA 2. PROGRAMACIN LINEAL
Min Z = 3x
1
+ 5x
2
s.a.:
x
1
+x
3
= 4
x
2
+x
4
= 6
3x
1
+ 2x
2
x
5
+x
6
= 18
x
1
, x
2
, x
3
, x
4
, x
5
, x
6
0
_

_
Este ejemplo ya lo hemos resuelto anteriormente usando el mtodo de las pena-
lizaciones, vamos a resolverlo ahora usando el mtodo de las dos fases:
Fase 1:
Construimos la tabla del Simplex como indica el paso 1. El objetivo es minimizar
la variable articial x
6.
Tabla I 0 0 0 0 0 1
Min x
1
x
2
x
3
x
4
x
5
x
6
x
3
0 1 0 1 0 0 0 4
x
4
0 0 1 0 1 0 0 6
x
6
1 3 2 0 0 1 1 18
z
j
c
j
3 2 0 0 1 0 Z
0
= 18
As, entra en la base a
1
por ser z
1
c
1
el mayor y sale de la base a
3
, pues hace
mnimo el cociente 4/1 y 18/3. Si construimos la nueva tabla del Simplex obtenemos:
Tabla II 0 0 0 0 0 1
Min x
1
x
2
x
3
x
4
x
5
x
6
x
1
0 1 0 1 0 0 0 4
x
4
0 0 1 0 1 0 0 6
x
6
1 0 2 3 0 1 1 6
z
j
c
j
0 2 3 0 1 0 Z = 6
Entra en la base a
2
por ser z
2
c
2
el mayor, y sale de la base a
6
pues es el que
hace mnimo el cociente 6/1 y 6/2. Si construimos la nueva tabla del Simplex:
Tabla III 0 0 0 0 0 1
Min x
1
x
2
x
3
x
4
x
5
x
6
x
1
3 1 0 1 0 0 0 4
x
4
0 0 0 3/2 1 1/2 1/2 3
x
2
5 0 1 3/2 0 1/2 1/2 3
z
j
c
j
0 0 0 0 0 1 Z = 0
Fase 2
Como en la base ptima no aparece ninguna variable articial, segn el paso 3,
prescindimos de esta variable. As la nueva tabla queda:
2.11. OTROS ALGORITMOS DE PROGRAMACIN LINEAL 79
Tabla IV 3 5 0 0 0
Min x
1
x
2
x
3
x
4
x
5
x
1
3 1 0 1 0 0 4
x
4
0 0 0 3/2 1 1/2 3
x
2
5 0 1 3/2 0 1/2 3
z
j
c
j
0 0 9/2 0 5/2

Z = 27
La solucin ptima es x
1
= 4 x
2
= 3 , con z = 27.
La variable de holgura x
4
= 3.
2.11.2 Algoritmo revisado del Simplex (Caso maximizante)
Este algoritmo tiene ventajas desde el punto de vista de la implementacin, ya
que ocupa menos posiciones de memoria. Adems no acumula errores, porque las
operaciones se realizan siempre con los datos originales.
Paso 0: Escribir el problema en forma estndar y obtener una matriz bsica inicial.
Paso 1: Evaluar B
1
y el vector multiplicador s = c

B
B
1
. Calcular, para las
variables no bsicas, los z
j
c
j
= s a
j
c
j
. Si todos son mayores o iguales a
cero, la solucin es ptima Fin .
Paso 2: Seleccionar el vector que entra en la base, que ser el que proporcione un
valor ms negativo de z
j
c
j
. Sea ste a
k
.
Paso 3: Evaluar y
k
= B
1
a
k
y X
B
= B
1
b y seleccionar el vector que sale de
la base, ser el que haga mnimo el cociente
x
i
y
ik
para los y
ik
> 0. Sea a
r
.
Paso 4: Sustituir en B el vector a
r
por a
k
. Volver al paso 1.
Vamos a resolver el siguiente ejemplo usando el algoritmo revisado del Simplex.
Este programa lineal ya se ha resuelto anteriormente en el ejemplo 34.
Ejemplo 37 Dado el programa lineal:
Max Z = 3x
1
+ 2x
2
2x
3
+x
4
s.a.:
2x
1
+ 3x
2
+x
3
= 12
2x
1
+x
2
+x
4
= 8
x
1
, x
2
, x
3
, x
4
0
_
_
_
Tomamos como base:
B = (a
3
, a
4
) = I
2
= B
1
= I
2
80 TEMA 2. PROGRAMACIN LINEAL
El vector multiplicador del Simplex es:
s = c

B
B
1
= c

B
I
2
= c

B
= (2, 1).
Si calculamos los z
j
c
j
tendremos:
z
1
c
1
= (2, 1)
_
2
2
_
3 = 2 3 = 5
z
2
c
2
= (2, 1)
_
3
1
_
2 = 5 2 = -7
Si calculamos y
k
= B
1
a
k
y x
B
= B
1
b tenemos:
y
2
= B
1
a
2
= I
2
a
2
= a
2
=
_
3
1
_
; x
B
= B
1
b = b =
_
12
8
_
Entra en la base a
2
por ser el ms negativo.
Y sale a
3
pues min
_
12
3
;
8
1
_
=
12
3
= 4.
Iteracin 1 La nueva base es:
B = (a
2
, a
4
) =
_
3 0
1 1
_
= B
1
=
_
1/3 0
1/3 1
_
El vector multiplicador del Simplex es:
s = c
B
B
1
= (2, 1)
_
1/3 0
1/3 1
_
= (1/3, 1).
Si calculamos los z
j
c
j
tendremos:
z
1
c
1
= (1/3, 1)
_
2
2
_
3 = 8/3 3 =
1/3
z
3
c
3
= (1/3, 1)
_
1
0
_
(2) = 1/3 + 2 = 7/3.
Si calculamos y
k
= B
1
a
k
y x
B
= B
1
b tenemos:
y
1
= B
1
a
1
=
_
1/3 0
1/3 1
_

_
2
2
_
=
_
2/3
4/3
_
;
x
B
= B
1
b =
_
1/3 0
1/3 1
_

_
12
8
_
=
_
4
4
_
.
2.11. OTROS ALGORITMOS DE PROGRAMACIN LINEAL 81
Entra en la base a
1
por ser z
1
c
1
< 0 el nico negativo. Como variable de salida
hacemos:
min
_
4
2/3
;
4
4/3
_
= min{6, 3} = 3.
Y por tanto sale de la base a
4
.
Iteracin 2 La nueva base es:
B = (a
2
, a
1
) =
_
3 2
1 2
_
= B
1
=
_
1/2 1/2
1/4 3/4
_
El vector multiplicador del Simplex es:
s = c
B
B
1
= (2, 3)
_
1/2 1/2
1/4 3/4
_
= (1/4, 5/4).
Si calculamos los z
j
c
j
tendremos:
z
3
c
3
= (1/4, 5/4)
_
1
0
_
(2) = 1/4 + 2 = 9/4
z
4
c
4
= (1/4, 5/4)
_
0
1
_
1 = 5/4 1 = 1/4.
La solucin ya es ptima.
Si calculamos x
B
= B
1
b tenemos:
x
B
= B
1
b =
_
1/2 1/2
1/4 3/4
_

_
12
8
_
=
_
2
3
_
La solucin asociada a esta base es ptima pues todos los z
j
c
j
0, la solucin
es:
x
1
= 3 x
2
= 2 x
3
= 0 x
4
= 0 ;

Z = 13
La base ptima es
B = (a
2
, a
1
) =
_
3 2
1 2
_
= B
1
=
_
1/2 1/2
1/4 3/4
_
Ejemplo 38 Aplicar el procedimiento anterior al programa lineal:
Max Z = 2x
1
3x
2
+ 10x
3
s.a.:
x
1
+ 2x
2
+x
3
= 4
2x
1
+x
2
+ 5x
3
= 5
x
1
, x
2
, x
3
0
_
_
_
82 TEMA 2. PROGRAMACIN LINEAL
Este programa lineal ya lo hemos resuelto anteriormente usando el mtodo del
Simplex en forma matricial, (ver ejemplo 33 en la pgina 66).
Si lo resolvemos ahora usando el algoritmo revisado del Simplex, tenemos que si
tomamos como base:
B = (a
1
, a
2
) =
_
1 2
2 1
_
= B
1
=
_
1/3 2/3
2/3 1/3
_
La solucin asociada a esta base es factible pues:
X
B
= B
1
b =
_
x
1
x
2
_
=
_
1/3 2/3
2/3 1/3
_

_
4
5
_
=
_
2
1
_
=
= x
1
= 2 x
2
= 1 x
3
= 0.
Si calculamos los z
j
c
j
usando que z
j
= c
t
B
y
j
obtenemos:
z
1
c
1
= (2, 3)
_
1
0
_
2 = 2 2 = 0
z
2
c
2
= (2, 3)
_
0
1
_
(3) = 3 + 3 = 0
z
3
c
3
= (2, 3)
_
3
1
_
10 = 9 10 = 1.
Como estamos en un problema de maximizar, entra en la base a
3
(segn la regla de
la variable de entrada).
y
3
= B
1
a
3
=
_
1/3 2/3
2/3 1/3
_

_
1
5
_
=
_
3
1
_
=
_
y
13
y
23
_
Veamos qu variable tendr que salir (usando la regla de variable de salida)
x
0
3
y
k3
= min
_
x
0
i
y
i3
; y
i3
> 0
_
Como y
13
= 3 y y
23
= 1, slo puede salir de la base a
1
pues y
23
es negativo.
Al salir de la base a
1
tenemos:
B = (a
2
, a
3
) =
_
2 1
1 5
_
= B
1
=
_
5/9 1/9
1/9 2/9
_
La solucin asociada a esta base es factible pues:
X
B
= B
1
b =
_
5/3
2/3
_
= x
1
= 0 x
2
= 5/3 x
3
= 2/3.
2.11. OTROS ALGORITMOS DE PROGRAMACIN LINEAL 83
Si calculamos los z
j
c
j
usando que z
j
= c
t
B
y
j
obtenemos:
z
1
c
1
= (3, 10)
_
1/3
1/3
_
2 = 7/3 2 = 1/3
z
2
c
2
= (3, 10)
_
1
0
_
(3) = 3 + 3 = 0
z
3
c
3
= (3, 10)
_
0
1
_
10 = 10 10 = 0.
Como estamos en un problema de maximizar, y todos los z
j
c
j
0, por la regla
de parada, la solucin ya es ptima.
x
1
= 0 x
2
= 5/3 x
3
= 2/3 ; Z = 0 + (3)
5
3
+ 10
2
3
=
5
3
.
Ejemplo 39 Resolver el programa lineal usando el algoritmo revisado del Simplex:
Max Z = x
1
x
2
+ 10x
3
6x
4
s.a.:
x
1
+ 2x
3
+ 5x
4
= 10
x
2
+ 5x
3
+ 3x
4
= 15
x
1
, x
2
, x
3
, x
4
0
_
_
_
Tomamos como base:
B = (a
1
, a
2
) =
_
1 0
0 1
_
= B
1
= I
2
=
_
1 0
0 1
_
As, directamente obtengo una solucin bsica factible asociada a esta base pues:
X
B
= B
1
b =
_
10
15
_
= x
1
= 10 x
2
= 15 x
3
= 0 x
4
= 0.
Si calculamos los z
j
c
j
usando que z
j
= c
t
B
y
j
obtenemos:
z
1
c
1
= 0
z
2
c
2
= 0
z
3
c
3
= (1, 1)
_
2
5
_
10 = 3 10 = 13
z
4
c
4
= (1, 1)
_
5
3
_
(6) = 2 + 6 = 8.
Como estamos en un problema de maximizar, entra en la base a
3
(segn la regla
de la variable de entrada). Veamos qu variable tendr que salir (usando la regla de
variable de salida).
84 TEMA 2. PROGRAMACIN LINEAL
x
0
3
y
k3
= min
_
x
0
i
y
i3
; y
i3
> 0 en nuestro caso j = 3.
_
Como y
13
= 2 y y
23
= 5:
x
0
3
y
k3
== min
_
10
2
;
15
5
_
= min{5, 3} = 3.
Luego el mnimo corresponde a
x
0
2
y
23
, y por tanto sale de la base a
2
. Al cambiar de
base tenemos:
B = (a
1
, a
3
) =
_
1 2
0 5
_
= B
1
=
_
1 2/5
0 1/5
_
La solucin asociada a esta base es factible pues:
X
B
= B
1
b =
_
4
3
_
= x
1
= 4 x
2
= 0 x
3
= 3 x
4
= 0.
Si calculamos los z
j
c
j
usando que z
j
= c
t
B
y
j
obtenemos:
z
1
c
1
= 0
z
2
c
2
= (1, 10)
_
2/5
1/5
_
(1) = 8/5 + 1 = 13/5
z
3
c
3
= 0
z
4
c
4
= (1, 10)
_
19/5
3/5
_
(6) = 49/5 + 6 = 79/5.
Como estamos en un problema de maximizar, y todos los z
j
c
j
0, por la regla
de parada, la solucin ya es ptima.
x
1
= 4 x
2
= 0 x
3
= 3 x
4
= 0 ; Z = 4 0 + 10(3) 0 = 34.
Tema 3
Dualidad en programacin
lineal
3.1 Formas de la dualidad
3.1.1 Forma cannica maximizante de la dualidad
Dado el programa lineal:
Max Z = C
t
X
sujeto a AX b
X 0
donde,
A es una matriz de dimensin mn
C es un vector columna de dimensin n 1
b es un vector columna de dimensin m1
X es un vector columna de dimensin n 1
llamado Programa Primal, se llama Programa Dual del mismo al programa
lineal:
Min W = b
t
Y
sujeto a A
t
Y C
Y 0
donde A
t
y A , C y C
t
, b y b
t
son matrices traspuestas entre s. El vector columna
Y, que contiene las variables del problema, ha de ser de dimensin m1.
85
86 TEMA 3. DUALIDAD EN PROGRAMACIN LINEAL
Ejemplo 40 Obtener el programa dual de:
Max Z = 2x
1
x
2
+ 2x
3
+x
4
s.a.: 2x
1
+x
2
+x
3
+ 2x
4
18
3x
1
+ 4x
2
+ 2x
3
+x
4
24
x
i
0, i = 1, 2, 3, 4
Sean:
A =
_
2 1 1 2
3 4 2 1
_
c
t
= (2, 1, 2, 1) b =
_
18
24
_
.
Por lo tanto
W = b
t
Y = (18, 24)
_
y
1
y
2
_
A
t
Y =
_
_
_
_
2 3
1 4
1 2
2 1
_
_
_
_

_
y
1
y
2
_

_
_
_
_
2
1
2
1
_
_
_
_
as que el programa dual es
Min W = 18y
1
+ 24y
2
s.a.: 2y
1
+ 3y
2
2
y
1
+ 4y
2
1
y
1
+ 2y
2
2
2y
1
+y
2
1
y
1
, y
2
0
En la prctica resulta util emplear la tabla de simplex en la forma siguiente:
Max
Min x
1
x
2
x
3
x
4

y
1
2 1 1 2 18
y
2
3 4 2 1 24
2 -1 2 1
Para escribir el dual se leen los coecientes de las restricciones y de la funcin
objetivo por columnas. Recordamos que cuando se trata del problema primal se leen
por las.
y
1
variable dual asociada a la primera restriccin.
y
2
variable dual asociada a la segunda restriccin.
Si el problema no estuviera expresado en forma cannica maximizante, una forma
de hallar su dual es transformarlo previamente a su forma cannica maximizante,
como haremos en el siguiente ejemplo.
3.1. FORMAS DE LA DUALIDAD 87
Ejemplo 41 Obtener el programa dual de:
Max Z = 3x
1
+ 8x
2
+ 2x
3
4x
4
s.a.: x
1
+x
2
+ 2x
3
+ 3x
4
5
x
1
x
2
= 1
x
3
x
4
46
x
i
0, i = 1, 2, 3, 4
Transformamos las restricciones segunda y tercera en desigualdades de signo
x
1
x
2
= 1
_
x
1
x
2
1
x
1
x
2
1

_
x
1
x
2
1
x
1
+ x
2
1
x
3
x
4
46 x
3
+x
4
46.
Por lo tanto el problema se expresa en forma cannica maximizante de la siguiente
forma:
Max
Min x
1
x
2
x
3
x
4

y
1
1 1 2 3 5
y
2
1 1 0 0 1
y
3
1 1 0 0 1
y
4
0 0 1 1 46
3 8 2 4
Min W = 5y
1
y
2
+y
3
46y
4
s.a.: y
1
+y
2
y
3
3
y
1
y
2
+y
3
8
2y
1
y
4
2
3y
1
+y
4
4
y
1
, y
2
, y
3
, y
4
0
Si se hacen los siguientes cambios:
y

2
= y
2
y
3
y

3
= y
3
_
tenemos:
Min W = 5y
1
y

2
+ 46y

3
s.a.: y
1
+y

2
3
y
1
y

2
8
2y
1
+y

3
2
3y
1
y

3
4
y
1
0, y

2
no restringida, y

3
0
88 TEMA 3. DUALIDAD EN PROGRAMACIN LINEAL
y
1
variable dual asociada a la primera restriccin.
y

2
variable dual asociada a la segunda restriccin.
y

3
variable dual asociada a la tercera restriccin.
Como puede verse la matriz de los coecientes del problema dual es la traspuesta
de la matriz correspondiente del problema primal.
3.1.2 Forma estndar maximizante de la dualidad
La dualidad se puede expresar en diferentes formas.
Por ejemplo, si el programa lineal est en forma estndar
Max Z = C
t
X sujeto a Ax = b, X 0
su dual puede expresarse en la forma siguiente:
Min W = b
t
Y, sujeto a A
t
Y C, Y no restringida.
En efecto, pasando la forma estndar a forma cannica maximizante obtenemos:
Ax = b
_
Ax b
Ax b

_
Ax b
Ax b
Llamando
A

=
_
A
A
_
y b

=
_
b
b
_
El problema se transforma en
Max Z = C
t
X sujeto a A

x b

, X 0
Segn la denicin de dualidad su dual es
Min W = (b

)
t
Y

, sujeto a (A

)
t
Y C, Y 0
Realizando operaciones
Min W =
_
b
b
_
t

_
Y1
Y2
_
, s. a.
_
A
A
_
t

_
Y1
Y2
_
C, Y 0
Min W =
_
b
t
, b
t
_

_
Y1
Y
2
_
, s. a.
_
A
t
, A
t
_

_
Y1
Y
2
_
C, Y 0
Min W = b
t
Y
1
b
t
Y
2
, s.a.: A
t
Y
1
A
t
Y
2
, C, Y
1
, Y
2
0.
3.1. FORMAS DE LA DUALIDAD 89
Deniendo Y = Y
1
Y
2
con Y
1
, Y
2
0 hacen que Y no est restringida en signo,
resultando que el programa dual puede expresarse en la forma:
Min W = b
t
Y, sujeto a A
t
Y C, Y no restringida.
Ejemplo 42 Hallar el dual del siguiente programa lineal:
Max Z = 2x
1
+ 3x
2
+ 4x
3
s.a.: x
1
+x
2
+x
3
3
x
1
x
2
2
x
1
+x
2
= 1
x
1
0, x
2
0, x
3
libre
Para ponerlo en forma cannica maximizante realizamos primero los cambios
necesarios para que todas las variables sean no negativas:
x
2
= x

2
, x
3
= x

3
x

4
Max Z = 2x
1
3x

2
+ 4x

3
4x

4
s.a.: x
1
x

2
+x

3
x

4
3
x
1
+x

2
2
x
1
x

2
= 1
x
1
0, x
2
0, x

3
0, x

4
0
Realizamos ahora las transformaciones para que todas las restricciones sean de
signo
Max Z = 2x
1
3x

2
+ 4x

3
4x

4
s.a.: x
1
x

2
+x

3
x

4
3
x
1
x

2
2
x
1
x

2
1
x
1
+x

2
1
x
1
0, x
2
0, x

3
0, x

4
0
Su dual es
Min W = 3y
1
2y
2
+y
3
y
4
s.a.: y
1
y
2
+y
3
y
4
2
y
1
y
2
y
3
+y
4
3
y
1
4
y
1
4
y
1
, y
2
, y
3
.y
4
0
Realizando los cambios
90 TEMA 3. DUALIDAD EN PROGRAMACIN LINEAL
y
3
y
4
= y

3
, y

2
= y
2
Obtenemos que el problema dual es:
Min W = 3y
1
+ 2y

2
+y

3
s.a.: y
1
+y

2
+y

3
2
y
1
y
2
+y

3
3
y
1
= 4
y
1
0, y

2
0, y

3
libre
Ejemplo 43 Obtener el programa dual de:
Max Z = 2x
1
+ 3x
2
x
3
s.a.: 3x
1
+ 4x
2
+ 2x
3
3
3x
1
2x
2
x
3
7
x
1
0, x
2
no restringida, x
3
0
Hago los siguientes cambios:
x
2
= x

1
x

2
x
3
= x

3
Max Z = 2x
1
+ 3x

2
3x

2
+x

3
s.a.: 3x
1
+ 4x

2
4x

2
2x

3
3
3x
1
2x

2
+ 2x

2
+x

3
7
x
1
, x

2
, x

2
, x

3
0
Max
Min x
1
x

2
x

2
x

3

y
1
3 4 -4 -2 3
y
2
3 -2 2 1 7
2 3 -3 1
Min W = 3y
1
+ 7y
2
s.a.: 3y
1
+ 3y
2
2
4y
1
2y
2
3
4y
1
+ 2y
2
3
2y
1
+y
2
1
y
1
, y
2
0
Buscamos el programa dual:
2y
1
+y
2
1 2y
1
y
2
1
3.1. FORMAS DE LA DUALIDAD 91
4y
1
2y
2
3
4y
1
2y
2
3
_
4y
1
2y
2
= 3
El programa dual quedara:
Min W = 3y
1
+ 7y
2
s.a.: 3y
1
+ 3y
2
2
4y
1
2y
2
= 3
2y
1
y
2
1
y
1
, y
2
0
3.1.3 Reglas para escribir el problema dual
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) El dual de un problema de maximizacin es un problema de minimizacin.
(b) El dual de un problema de minimizacin es un problema de maximizacin.
2. Nmero de incgnitas y de restricciones:
(a) El nmero de incgnitas del dual es el nmero de restricciones del primal.
(b) El nmero de restricciones del dual es el nmero de incgnitas del primal.
3. Coecientes de coste y trminos independientes de las restricciones.
(a) Los coecientes de coste del dual son los trminos independientes de las
restricciones del primal.
(b) Los trminos independientes de las restricciones del dual son los coe-
cientes de coste del primal.
4. Las matrices tecnolgicas del primal y dual son traspuestas entre s.
5. Signo de las restricciones y de las variables.
A cada restriccin de un problema viene asociado una variable del otro.
Las reglas para escribir los signos de las restricciones y de las variables corres-
pondientes vienen resumidas en la tabla siguiente:
92 TEMA 3. DUALIDAD EN PROGRAMACIN LINEAL
Primal de Maximizacin Dual de Minimizacin
restriccin
_
_
_

=
0
0
libre
_
_
_
variables
variable
_
_
_
0
0
libre

=
_
_
_
restriccin
Dual de Maximizacin Primal de Minimizacin
3.1.4 Forma cannica minimizante de la dualidad
La siguiente expresin enuncia la dualidad en forma cannica minimizante.
Dado el programa lineal Min Z = c
t
X, sujeto a A
t
X b, X 0 su dual es
Max W = b
t
Y, sujeto a A
t
Y c, Y 0.
Se puede comprobar que en este enunciado se cumplen las reglas para determinar
el programa dual dadas en la tabla anterior.
Ejemplo 44 Obtener el dual del problema:
Min Z = 3x
1
+ 9x
2
s.a.: x
1
x
2
1
2x
1
+x
2
3
3x
1
x
2
5
x
1
, x
2
0
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 x
1
x
2

y
1
1 -1 1
y
2
2 1 3
y
3
3 -1 5
3 9
Max W = y
1
+ 3y
2
+ 5y
3
s.a.: y
1
+ 2y
2
+ 3y
3
3
y
1
+y
2
y
3
9
y
1
, y
2
, y
3
0
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
bar a posteriori que se cumplen las reglas de los signos.
Min Z = 2x
1
x
2
s.a.: 4x
1
+ 7x
2
10
3x
1
4x
2
8
x
1
0, x
2
no restringida
Llamamos x
2
= x

2
x

2
:
Min Z = 2x
1
x

2
+x

2
s.a.: 4x
1
+ 7x

2
7x

2
10
3x
1
4x

2
+ 4x

2
8
x
1
, x

2
, x

2
0
4x
1
+ 7x

2
7x

2
10 4x
1
7x

2
+ 7x

2
10
Escribimos ahora el dual
Max
Min x
1
x

2
x

2

y
1
-4 -7 7 -10
y
2
3 -4 4 8
2 -1 1
Max W = 10y
1
+ 8y
2
s.a.: 4y
1
+ 3y
2
2
7y
1
4y
2
1
7y
1
+ 4y
2
1
y
1
, y
2
0
Si llamamos y

1
= y
1
tenemos:
Max W = 10y

1
+ 8y
2
s.a.: 4y

1
+ 3y
2
2
7y

1
4y
2
1
7y

1
+ 4y
2
1
y
1
0, y
2
0
7y

1
4y
2
1
7y

1
4y
2
1
_
7y

1
4y
2
= 1
El dual ser:
94 TEMA 3. DUALIDAD EN PROGRAMACIN LINEAL
Max W = 10y

1
+ 8y
2
s.a.: 4y

1
+ 3y
2
2
7y

1
4y
2
= 1
y

1
0, y
2
0
En la siguiente tabla estn indicados los cambios efectuados:
restriccin del dual
_
_
_
1
a

2
a
=
x
1
0
x
2
libre
_
_
_
variables del primal
variable del dual
_
y
2
0
y

1
0
2
a
1
a
_
restriccin del primal
Dual de Maximizacin Primal de Minimizacin
3.2 Propiedades de la relacin de dualidad
1.- El dual del dual es el primal.
Demostracin.
Max Z = C
t
X
sujeto a AX b
X 0
donde A es una matriz de dimensin mn y X un vector de dimensin n 1. Su
dual es:
Min W = b
t
Y
sujeto a A
t
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
sujeto a (A
t
)
t
X b
X 0

Max Z = C
t
X
sujeto a AX b
X 0
A continuacin exponemos una demostracin de esta propiedad.
Para calcular el dual de
min W = b
t
Y
sujeto a A
t
Y C
y 0
3.2. PROPIEDADES DE LA RELACIN DE DUALIDAD 95
que es el dual del primitivo, lo expresamos en forma cannica maximizante
W

= W = b
t
Y
max W=max (-W) = b
t
Y
sujeto a A
t
Y C
y 0
Su dual es:
min (-Z) = C
t
X
sujeto a AX b
X 0
es decir:
max Z = C
t
X
sujeto a AX b
X 0
que es el problema primitivo.
2.- Teorema de dualidad dbil.
Si x
0
e y
0
son soluciones factibles para el programa primal y el programa dual
respectivamente, entonces se cumple que C
t
x
0
b
t
y
0
.
Demostracin.
Los problemas son:
Primal
_
_
_
Max Z = c
t
X
sujeto a AX b
X 0
Dual
_
_
_
Min W = b
t
Y
sujeto a A
t
Y c
y 0
Como x
0
es factible se verica:
Ax
0
b; x
0
0 (3.1)
Como y
0
es factible se cumple:
A
t
y
0
c; y
0
0 (3.2)
Si multiplico (3.1) por la izquierda por y
t
0
tenemos:
96 TEMA 3. DUALIDAD EN PROGRAMACIN LINEAL
y
t
0
Ax
0
y
t
0
b (3.3)
Si multiplico (3.2) por x
t
0
tenemos:
x
t
0
A
t
y
0
x
t
0
c (3.4)
Si hallo la traspuesta de (3.4) tenemos:
y
t
0
Ax
0
c
t
x
0
(3.5)
Considerando (3.5) y (3.3) c
t
x
0
y
t
0
Ax
0
y y
t
0
Ax
0
y
t
0
b.
Por tanto c
t
x
0
y
t
0
b = b
t
y
0
puesto que
y
0
b = (y
0
1
, y
0
2
...y
0
m
)
_
_
_
_
_
_
b
1
b
2

b
m
_
_
_
_
_
_
= (b
1
, b
2
...b
m
)
_
_
_
_
_
_
y
0
1
y
0
2

y
0
m
)
_
_
_
_
_
_
= b
t
y
0
Consecuencias del teorema de dualidad dbil.
Esta desigualdad tiene las consecuencias inmediatas siguientes:
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.
Tambin se deducen las siguientes propiedades
c) Si el primal es factible y no acotado, entonces el dual es no factible.
Demostracin.
La demostraremos por Reduccin al Absurdo: Si el dual fuera factible e y
0
una
solucin, entonces para toda solucin factible del primal, x, en aplicacin del teorema
de dualidad debil se cumplira que C
t
x < b
t
y
0
. Por tanto el primal estara acotado
por b
t
y
0
, contradicindose la hiptesis de no acotacin del primal.
d) Si el dual es factible y no acotado, entonces el primal es no factible.
3.2. PROPIEDADES DE LA RELACIN DE DUALIDAD 97
Si el primal fuera factible entonces existe un x
0
que cumple las restricciones y la
no negatividad, por tanto Z
0
= c
t
x
0
= Z
0
W. Pero si tiene una cota inferior
no puede ser no acotada.
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

= c
t
x

e W

= b
t
y

. y Z

= W

.
Primal: Sea x cualquier otra solucin factible entonces c
t
x b
t
y

= c
t
x

=
c
t
x c
t
x

x.
x

es el valor mas alto al que puede llegar el objetivo por tanto x

es ptima.
Dual: Sea y cualquier otra solucin factible entonces c
t
x

b
t
y =b
t
y

b
t
y y.
b
t
y

es el valor mnimo al que llega la funcin objetivo por tanto y

es ptima.
3.- Teorema de dualidad principal.
Si el problema primal tiene solucin ptima nita correspondiente a la base B,
entonces el problema dual tambin tiene solucin ptima nita y dicha solucin es
Y
t
= C
t
B
B
1
(vector multiplicador simplex de la base ptima).
Demostracin.
Max Z = C
t
X
sujeto a Ax b
X 0
y su dual
Min W = b
t
Y
sujeto a A
t
Y C
y 0
Aadiendo al primal variables de holgura (X
n
) resulta
AX +IX
n
= b (AI) = (a
1
a
2
..a
n
e
1
, e
2
..e
m
)
B base ptima =X
B
= B
1
b y C
t
B
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:
C
t
B
B
1
A C
t
0; . C
t
B
B
1
I 0 0
98 TEMA 3. DUALIDAD EN PROGRAMACIN LINEAL
Transponiendo la primera de estas desigualdades resulta
A
t
_
C
t
B
B
1
_
t
C 0 = A
t
Y

C
De la segunda obtenemos
C
t
B
B
1
I = C
t
B
B
1
= (Y

)
t
0
Luego Y

es una solucin factible del problema dual. Veamos que es adems


ptima:
W

= b
t
Y

= Y
t
b = C
t
B
B
1
b = C
t
B
tX
B
= Z

Por la consecuencia e) del teorema de dualidad dbil, Y

tambin es ptima.
Consecuencias:
Si el primal es factible el dual es factible.
Si el dual es infactible entonces el primal es no acotado o es tambin infactible.
Si el primal es infactible entonces el dual es no acotado o es tambin infactible.
Solucin del problema dual en la resolucin del problema primal
Si se emplea el algoritmo revisado del simplex ya tenemos la solucin de la
dualidad:
Y
t
= C
t
B
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:
Y
t
= C
t
B
B
1
.
Ejemplo 46 Dado el P.L.
Max Z = 5x
1
+ 3x
2
s.a.: x
1
2
5x
1
+ 2x
2
12
3x
1
+ 8x
2
12
x
1
, x
2
0
Hallar su dual y obtener las soluciones de los problemas primal y dual.
3.2. PROPIEDADES DE LA RELACIN DE DUALIDAD 99
El dual es:
Min W = 2y
1
+ 12y
2
+ 12y
3
s.a.: y
1
+ 5y
2
+ 3y
3
5
2y
2
+ 8y
3
3
y
1
, y
2
, y
3
0
Solucin del primal:
5 3 0 0 0
Max x
1
x
2
x
3
x
4
x
5
x
3
0 1* 0 1 0 0 2
x
4
0 5 2 0 1 0 12
x
5
0 3 8 0 0 1 12
Z
j
c
j
-5 -3 0 0 0 z=0
5 3 0 0 0
Max x
1
x
2
x
3
x
4
x
5
x
1
5 1 0 1 0 0 2
x
4
0 0 2 -5 1 0 2
x
5
0 0 8* -3 0 1 6
Z
j
c
j
0 -3 5 0 0 z=10
5 3 0 0 0
Max x
1
x
2
x
3
x
4
x
5
x
1
5 1 0 1 0 0 2
x
4
0 0 0 -17/4 1 -1/4 1/2
x
2
3 0 1 -3/8 0 1/8 3/4
Z
j
c
j
0 0 31/8 0 3/8 z=49/4
Solucin ptima del programa primal: x
1
= 2, x
2
=
3
4
, Z

=
49
4
.
Solucin ptima del dual: y
1
=
31
8
, y
2
= 0, y
3
=
3
8
, W

=
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 r
j
= z
j
c
j
. Es decir:
z
j
= r
j
+ c
j
. Aqu tambien se debe usar esta expresin, lo que pasa es que
c
3
= c
4
= c
5
= 0. En el siguiente ejemplo resolveremos un caso en que alguna
de las variable de holgura no tiene coeciente nulo en la funcin objetivo.
100 TEMA 3. DUALIDAD EN PROGRAMACIN LINEAL
Ejemplo 47 Dado el P.L.
Min Z = 2x
1
+ 3x
2
x
3
s.a.: 2x
1
+x
2
x
3
2
x
1
2x
2
+ 3x
3
= 6
x
1
+ 3x
2
+ 4x
3
10
x
1
, x
2
0, x
3
no restringida
Deducir su problema dual. Resolver el problema primal y hallar la solucin del
dual a partir de la tabla del primal.
Hacemos el cambio x
3
= x

3
x

3
Min Z = 2x
1
+ 3x
2
x

3
+x

3
s.a.: 2x
1
+x
2
x

3
+x

3
2
x
1
2x
2
+ 3x

3
3x

3
= 6
x
1
+ 3x
2
+ 4x

3
4x

3
10
x
1
, x
2
, x

3
, x

3
0
Pasando a la forma cannica minimizante
Min Z = 2x
1
+ 3x
2
x

3
+x

3
s.a.: 2x
1
+x
2
x

3
+x

3
2
x
1
2x
2
+ 3x

3
3x

3
6
x
1
+ 2x
2
3x

3
+ 3x

3
6
x
1
3x
2
4x

3
+ 4x

3
10
x
1
, x
2
, x

3
, x

3
0
Max
Min x
1
x
2
x

3
x

3

y
1
2 1 -1 1 2
y
2
1 -2 3 -3 6
y
3
-1 2 -3 3 -6
y
4
-1 -3 -4 4 -10
2 3 -1 1
El problema dual es
Max W = 2y
1
+ 6y
2
6y
3
10y
4
s.a.: 2y
1
+y
2
y
3
y
4
2
y
1
2y
2
+ 2y
3
3y
4
3
y
1
+ 3y
2
3y
3
4y
4
1
y
1
3y
2
+ 3y
3
+ 4y
4
1
y
1
, y
2
, y
3
, y
4
0
3.2. PROPIEDADES DE LA RELACIN DE DUALIDAD 101
y
1
+ 3y
2
3y
3
4y
4
1
y
1
3y
2
+ 3y
3
+ 4y
4
1
_
=y
1
3y
2
+ 3y
3
+ 4y
4
= 1.
Si hacemos el cambio:
y

2
= y
2
y
3
y
4
= y
4
_
El programa dual ser:
Max W = 2y
1
+ 6y

2
+ 10y

4
s.a.: 2y
1
+y

2
+y

4
2
y
1
2y

2
+ 3y

4
3
y
1
+ 3y

2
+ 4y

4
= 1
y
1
0, y

2
no restringida y

4
0
Hallamos ahora la solucin del primal. Aadiendo variables de holgura y arti-
ciales y transformando las variables en no negativas tenemos:
Min Z = 2x
1
+ 3x
2
x

3
+x

3
+mx
5
+mx
6
s.a.: 2x
1
+x
2
x

3
+x

3
x
4
+x
5
2
x
1
2x
2
+ 3x

3
3x

3
+x
6
= 6
x
1
+ 3x
2
+ 4x

3
4x

3
+x
7
10
x
i
0, i = 1, 2, .., 7
2 3 1 1 0 m m 0
Min x
1
x
2
x

3
x

3
x
4
x
5
x
6
x
7
x
5
m 2 1 1 1 1 1 0 0 2
x
6
m 1 2 3 3 0 0 1 0 6
x
7
0 1 3 4 4 0 0 0 1 10
Z
j
c
j
3m2 m3 2m+ 1 2m1 m 0 0 0 8m
2 3 1 1 0 m m 0
Min x
1
x
2
x

3
x

3
x
4
x
5
x
6
x
7
x
1
2 1 1/2 1/2 1/2 1/2 1/2 0 0 1
x
6
m 0 5/2 7/2 7/2 1/2 1/2 1 0 5
x
7
0 0 5/2 9/2 9/2 1/2 1/2 0 1 9
Z
j
c
j
0
5m
2
2
7m
2
7m
2
m
2
1
3m
2
+ 1 0 0 5m+ 2
2 3 1 1 0 m m 0
Min x
1
x
2
x

3
x

3
x
4
x
5
x
6
x
7
x
1
2 1 1/7 0 0 3/7 3/7 1/7 0 12/7
x

3
1 0 5/7 1 1 1/7 1/7 2/7 0 10/7
x
7
0 0 40/7 0 0 1/7 1/7 9/7 1 18/7
Z
j
c
j
0 2 0 0 1 1 m m 0 2
102 TEMA 3. DUALIDAD EN PROGRAMACIN LINEAL
La solucin ptima del programa primal es:
x
1
=
12
7
, x
2
= 0, x
3
=
10
7
, Z

= 2.
La solucin ptima del dual, llamando y
2
= y

2
, y
3
= y

4
, es:
y
1
= (1 m) +m = 1, y
2
= m+m = 0, y
3
= 0, W

= 2.
4.- Teorema de Holgura Complementaria.
Sean X

= (x
j
) e Y

= (y
i
) soluciones factibles de los problemas primal y dual
repectivamente, y sean U

= (u
i
) y V

= (v
j
) los valores respectivos de las
variables de holgura para las soluciones X

e Y

, entonces, X

e Y

son
ptimas si y solo si se cumple que:
u
i
y
i
= 0 i = 1, 2, .., m v
j
x
j
= 0 j = 1, 2, .., n
Demostracin.
= Supongamos que X

e Y

son ptimas. Partimos de:


Max Z = C
t
X
sujeto a AX b
X 0
y su dual
Min W = b
t
Y
sujeto a A
t
Y C
y 0
Tenemos:
AX

+U

= b =multiplicamos por Y
t
por la izquierda
Y
t
AX

+Y
t
U

= Y
t
b
Y
t
U

= Y
t
b Y
t
AX

(3.6)
y
A
t
Y

= C =multiplicamos por X

Y
t
AX

V
t
X

= V
t
X

V
t
X

= C
t
X

Y
t
AX

(3.7)
Por ser ptimas se cumple que
C
t
X

= b
t
Y

. (3.8)
Pero cuando adems Y
t
b = b
t
Y

de (3.6) (3.7) y (3.8) tenemos:


3.2. PROPIEDADES DE LA RELACIN DE DUALIDAD 103
Y
t
U

= V
t
X

=Y
t
U

+V
t
X

= 0
(y
1
, y
2
, .., y
m
)
_
_
_
_
_
_
u
1
u
2

u
m
_
_
_
_
_
_
+ (v
1
, v
2
, .., v
n
)
_
_
_
_
_
_
x
1
x
2

x
n
_
_
_
_
_
_
= 0
m

i=1
y
i
u
i
+
n

j=1
v
j
x
j
= 0
Como todos los sumandos son no negativos ha de ser:
y
i
u
i
= 0 i = 1, 2, .., m
v
j
x
j
= 0 j = 1, 2, .., n
= Supongamos que X

,Y

verican u
i
y
i
= 0; v
j
x
j
= 0 y adems son
factibles

m
i=1
y
i
u
i
= 0;

n
j=1
v
j
x
j
= 0, luego,
m

i=1
y
i
u
i
+
n

j=1
v
j
x
j
= 0
Y
t
U

+V
t
X

= 0
pero
AX

+U

= b = U

= b AX

(1)
AY

= C = Y
t
AV
t
= C
t
= V
t
= Y
t
AC
t
.
Usando las tres relaciones ltimas tenemos:
Y
t
(b AX

) + (Y
t
AC
t
)X

= 0
Y
t
b Y
t
AX

+Y
t
AX

C
t
X

= 0
Y
t
b = C
t
X

Por la consecuencia e) del teorema de dualidad dbil, entonces son ptimas.


104 TEMA 3. DUALIDAD EN PROGRAMACIN LINEAL
Nota: Este teorema puede utilizarse para deducir la solucin del dual conociendo
la del primal, vemoslo por medio del siguiente ejemplo:
Ejemplo 48 Dado el programa lineal siguiente, determine la solucin ptima del
programa dual usando el teorema de Holgura complementaria.
Max Z = 5x
1
+ 3x
2
s.a. :x
1
2
5x
1
+ 2x
2
12
3x
1
+ 8x
2
12
x
1
, x
2
0
Se sabe que la solucin ptima del primal es: x
1
= 2, x
2
=
3
4
, Z =
49
4
.
Introduciendo variables de holgura, el sistema de restricciones ser:
x
1
+ u
1
= 2
5x
1
+ 2x
2
+u
2
= 12
3x
1
+ 8x
2
+u
3
= 12
El dual ser:
Min W: = 2y
1
+ 12y
2
+ 12y
3
s.a.:y
1
+ 5y
2
+ 3y
3
5
2y
2
+ 8y
3
3
y
1
, y
2
, y
3
0
y el sistema de restricciones del dual con variables de holgura es:
y
1
+ 5y
2
+ 3y
3
v
1
= 5
2y
2
+ 8y
3
v
2
= 3
v
j
x

j
= 0
_
v
1
x
1
= 0
v
2
x
2
= 0
y como
_
x
1
= 2 > 0
x
2
= 3/4 > 0
_
=
=
_
_
_
v
1
= 0
v
2
= 0
y
u
1
= 0
u
2
=
1
2
u
3
= 0
_
_
_
u
i
y
i
= 0
_
_
_
u
1
y
1
= 0
u
2
y
2
= 0
u
3
y
3
= 0
y como y
2
= 0
Sustituyendo los valores v
1
= 0, v
2
= 0, y
2
= 0 en el problema dual, se obtiene
su solucin resolviendo el sistema.
y
1
+ 3y
3
= 5
8y
3
= 3
_
=y
3
=
8
3
, y
1
=
31
8
3.3. INTERPRETACIN ECONMICA DE LA DUALIDAD 105
Es decir la solucin ptima del problema dual es:
y
1
=
31
8
, y
2
= 0, y
3
=
8
3
, v
1
= 0, v
2
= 0, W =
49
4
.
3.3 Interpretacin econmica de la dualidad
Las variables duales nos indican como vara la funcin objetivo al cambiar los recur-
sos.
En efecto: Si la base ptima es B; X

B
= B
1
b; Z

= C
t
B
X

B
, cambian los
recursos a b+b, y el valor b es sucientemente pequeo para que no haya cambio
en la base ptima, entonces:
X

B
= B
1
(b + b) = B
1
b +B
1
(b)
Z

= C
t
B
X

B
= C
t
B
B
1
b +C
B
B
1
(b) = Z

+Y
t
(b) =
= Z

+
m

i=1
y

i
(b) = Z

+y

1
(b
1
) +y

2
(b
2
) + +y

m
(b
m
) (3.9)
Ejemplo 49 En el siguiente problema
Max Z: = 5x
1
+ 3x
2
s.a.:x
1
2
5x
1
+ 2x
2
12
3x
1
+ 8x
2
12
x
1
, x
2
0
la solucin ptima primal: x
1
= 2, x
2
=
3
4
, Z =
49
4
y la solucin ptima dual es
y

1
=
31
8
, y

2
= 0, y

3
=
3
8
; .W =
49
4
.
Si usamos la expresin 3.9, se tiene que
Z

= Z

+y

1
(b
1
) +y

2
(b
2
) +y

3
(b
3
) =
49
4
+
31
8
(b
1
) + 0(b
2
) +
3
8
(b
3
)
As que si b
1
= 2 aumenta una unidad = Z aumenta en
31
8
. Si b
2
= 12 aumenta
una unidad =Z aumenta en 0 y si b
3
= 12 aumenta una unidad =Z aumenta
en
3
8
. Hay que tener en cuenta que este resultado slo es vlido dentro del entorno
de b que no implique un cambio de la base ptima y por tanto de la matriz ptima
permanece inalterada. El intervalo de validez de este resultado se tratar en el
siguiente tema, donde estudiaremos el problema de la sensibilidad de los disyintos
parmetros del problema de Programacin lineal.
En resumen, cundo conviene resolver el programa dual?
106 TEMA 3. DUALIDAD EN PROGRAMACIN LINEAL
Cuando el dual sea ms fcil de resolver.
Cuando necesitamos aplicar su interpretacin econmica.
En aquellas ramas de la Investigacin Operativa en las que la dualidad aparezca
de modo natural, por ejemplo en los problemas de transporte y asignacin.
Ejemplo 50 (Interpretacin econmica del dual) Una peletero fabrica bolsos,
cinturones y monederos. Cada bolso supone una ganancia de 120 euros, cada cin-
turn 60, y cada monedero 40. El material y horas de sueldo necesarios para realizar
cada uno de estos objetos viene expresado en la siguiente tabla, donde tambin se
indica la cantidad de recursos disponibles actualmente:
Gasto por unidad y producto bolsos cinturones monederos Disponible
Material (piel) 8 6 1 48
Diseo y confeccin (horas trabajo) 4 2 1.5 20
Acabado(horas trabajo) 2 1.5 0.5 8
Ganancia por unidad 120 60 40
Cuntos objetos har de cada clase para maximizar la ganancia? Plantear este
problema y hallar una interpretacin del problema dual.
Planteamiento:
Sean las variables de decisin para el problema:
x
1
= nmero de bolsos,
x
2
= nmero de cinturones,
x
3
= nmero de monederos.
Max Z = 120x
1
+ 60x
2
+ 40x
3
s.a.: 8x
1
+ 6x
2
+x
3
48
4x
1
+ 2x
2
+ 1.5x
3
20
2x
1
+ 1.5x
2
+ 0.5x
3
8
x
1
, x
2
, x
3
0,
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 y
1
, y
2
, y
3
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 48y
1
+20y
2
+8y
3
, 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:
min 48y
1
+ 20y
2
+ 8y
3
s.a. 8y
1
+ 4y
2
+ 2y
3
120 (ganancia por un bolso)
6y
1
+ 2y
2
+ 1.5y 60 (ganancia por un cinturn)
y
1
+ 1.5y
2
+ 0.5y
3
40 (ganancia por un monedero)
y
1
, y
2
, y
3
0
que como se ve es el dual del primero. Los valores de las variables de la solucin del
problema dual deben ser interpretadas como los precios por unidad de cada recurso.
Se suelen llamar precios-sombra de los recursos, ya que, no es un precio real o de
mercado, sino un precio asociado al problema primal.
3.4 Algoritmo Dual del Simplex. (Caso maximizante)
Este mtodo es til a veces para no tener que introducir variables articiales. 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 z
j
c
j
0, pero con
algn x
i
< 0. Este tipo de soluciones se llaman dual factible.
Paso 1
Si x
B
solucin bsica factible cumpliendo x
B
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 x
r
.
Paso 3 (Seleccin de la variable de entrada)
Determinar para las columnas no bsicas los cocientes p
j
=
zjcj
y
rj
para los y
rj
< 0.
Si todos los y
rj
0 el programa dual es no acotado y el primal es no factible. FIN.
Si hay algn y
rj
< 0, entra la variable de mayor cociente (o menor valor absoluto).
Sea x
k
.
Paso 4
Establecer una nueva tabla con y
rk
como pivote y volver al Paso 1.
Nota 2: En el caso minimizante todo es igual salvo:
Paso 1. Hay que partir de una tabla en la que z
j
c
j
0.
Paso 3. Se selecciona la variable de entrada que de mnimo el cociente p
j
=
zjcj
yrj
para los y
rj
< 0 (o menor valor absoluto, porque es positivo).
108 TEMA 3. DUALIDAD EN PROGRAMACIN LINEAL
Ejemplo 51 Resolver el programa lineal:
Max Z = 2x
1
x
2
4x
3
s.a.: 3x
1
+ 2x
2
+ 5x
3
15
x
1
+ 3x
2
+ 2x
3
7
x
1
, x
2
, x
3
0
_

_
La tabla inicial, obtenida cambiando de signo las dos restriciones y aadiendo
variables de holgura es:
2 1 4 0 0
Max x
1
x
2
x
3
x
4
x
5
x
4
0 3 2 5 1 0 15
x
5
0 1 3 2 0 1 7
z
j
c
j
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 (x
B
< 0); y el dual es factible pues z
j
c
j
0.
El trmino independiente ms negativo es -15. El pivote correspondiente est en la
segunda columna, ya que:
max
_
2
3
,
1
2
,
4
5
_
= min
_
2
3
,
1
2
,
4
5
_
=
1
2
As, haciendo las transformaciones correspondientes, si usamos 2 como pivote,
tenemos la siguiente tabla:
2 1 4 0 0
Max x
1
x
2
x
3
x
4
x
5
x
2
-1
3
2
1
5
2
-
1
2
0
15
2
x
5
0
7
2
0
11
2
-
3
2
1
31
2
z
j
c
j
1
2
0
3
2
1
2
0
que es dual factible y primal factible. La solucin del problema es:
x
1
= 0 , x
2
= 7.5 , z = 2 0 7.5 4 0 = 7.5
Y la solucin ptima del dual es:
y
1
= 1/2 , y
2
= 0 , w = 15
1
2
7 0 = 7.5
Ejemplo 52 Resolver el programa lineal siguiente y su programa dual:
3.4. ALGORITMO DUAL DEL SIMPLEX. (CASO MAXIMIZANTE) 109
Min Z = x
1
+x
2
+x
3
s.a.: x
1
x
2
+ 3x
3
1
2x
1
x
2
+x
3
0
x
1
+x
2
x
3
2
x
1
, x
2
, x
3
0
_

_
El problema dual sera
x
1
x
2
x
3

y
1
1 1 3 1
y
2
2 1 1 0
y
3
1 1 1 2
1 1 1
Max W = y
1
+ 2y
3
s.a.: y
1
+ 2y
2
+y
3
1
y
1
y
2
+y
3
1
3y
1
+y
2
y
3
1
y
1
, y
2
, y
3
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 = x
1
+x
2
+x
3
s.a.: x
1
+x
2
3x
3
1
2x
1
+x
2
x
3
0
x
1
x
2
+x
3
2
x
1
, x
2
, x
3
0
:
Min Z = x
1
+x
2
+x
3
s.a.: x
1
+x
2
3x
3
+x
4
= 1
2x
1
+x
2
x
3
+x
5
= 0
x
1
x
2
+x
3
+x
6
= 2
x
1
, x
2
, x
3
, x
4
, x
5
, x
6
0
_

_
1 1 1 0 0 0
Min x
1
x
2
x
3
x
4
x
5
x
6
x
4
0 1 1 3 1 0 0 1
x
5
0 2 1 1 0 1 0 0
x
6
0 1 1 1 0 0 1 2
z
j
c
j
1 1 1 0 0 0 z = 0
Sale x
6
pues tiene el valor ms pequeo x
6
= 2, y entra x
1
, pues en la tercera
la min{
1
1
,
1
1
} = 1. As, haciendo las transformaciones correspondientes, usando
como pivote al coeciente y
31
= 1, tenemos la siguiente tabla:
1 1 1 0 0 0
Min x
1
x
2
x
3
x
4
x
5
x
6
x
4
0 0 2 4 1 0 1 1
x
5
0 0 3 3 0 1 2 4
x
1
1 1 1 1 0 0 1 2
z
j
c
j
0 0 2 0 0 1 z = 2
110 TEMA 3. DUALIDAD EN PROGRAMACIN LINEAL
Como el valor z
2
c
2
= 0 y x
2
no est en la base, indica que hay soluciones
mltiples. Como x
B
0, tenemos que una solucin ptima del primal es:
x
1
= 2 , x
2
= 0 , x
3
= 0 , z = 2.
Como hemos cambiado de signo las restricciones del primal tenemos que la solu-
cin ptima del dual es:
y
1
= 0 , y
2
= 0 , y
3
= 1 , w = 2.
Como hemos dicho hay un coste reducido cero en una variable no bsica (z
2
c
2
= 0),
y por tanto si se introduce la variable x
2
sale x
4
. Si se hacen las transformaciones
correspondientes usando como pivote 2, obtenemos la nueva tabla:
1 1 1 0 0 0
Min x
1
x
2
x
3
x
4
x
5
x
6
x
2
1 0 1 4 1/2 0 1/2 1/2
x
5
0 0 0 3 3/2 1 1/2 5/2
x
1
1 1 0 1 1/2 0 1/2 3/2
z
j
c
j
0 0 2 0 0 1 z = 2
As obtenemos que otra solucin ptima para el primal es:
x
1
= 3/2 , x
2
= 1/2 , x
3
= 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 innitas soluciones. Sin embargo, para
el problema dual se obtiene ahora la misma solucin que anteriormente.
Tema 4
Anlisis de sensibilidad
4.1 Introduccin grca
Consideraremos en el siguiente ejemplo
max Z = 3x
1
+ 2x
2
s.a.:
_
_
_
2x
1
+x
2
100
x
1
+x
2
80
x
1
, x
2
0
cuya solucin ptima es x
1
= 20, x
2
= 60, con Z = 180.
Qu ocurrira si se realizaran cambios en los coecientes de la funcin objetivo?
Observando la representacin grca de este problema en la gura 4.1 de la pgina
112,puede deducirse que si se hicieran pequeas modicaciones de los coecientes de
la funcin objetivo el resultado sera un ligero giro en la representacin grca de la
funcin objetivo, sin que se altere, el valor del punto donde se alcanza el valor ptimo,
aunque si se alterara el valor de Z. En el Anlisis de Sensibilidad, que iniciamos
en este captulo, se estudiarn los efectos producidos por algunas modicaciones en
los datos iniciales. En el caso que estamos tratando, un cambio en los costes, c
i
,
podra mantenerse la solucin ptima para ciertos intervalos de variacin, aunque
cambiara el valor del objetivo.
Si lo que cambian son los recursos, bi, algunas aristas de la regin factible se
desplazarn paralelamente. En este caso, puede que se mantenga la base ptima
pero en muchos casos, como en el de nuestro ejemplo, variar la solucin ptima y
por tanto tambin el objetivo. Ms complicado es ver qu ocurrira cuando cam-
bien los coecientes tecnolgicos (a
ij
) aunque tambin pueden obtenerse algunas
simplicaciones.
111
112 TEMA 4. ANLISIS DE SENSIBILIDAD
Figura 4.1: Problema de Sensibilidad en los costes.
Para realizar este estudio se supone que se tiene una solucin ptima del proble-
ma, y que debido a las uctuaciones 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
modicaciones debido a los cambios producidos. Por este motivo, el Anlisis de
Sensibilidad se conoce tambin con el nombre de Anlisis de Post-optimalidad.
4.2 Cambios discretos
4.2.1 Variacin en un coste de una variable no bsica
Ejemplo 53 Consideramos el problema
max Z = 60x
1
+ 30x
2
+ 20x
3
,
s.a.
8x
1
+ 6x
2
+x
3
48
4x
1
+ 2x
2
+ 1.5x
3
20
2x
1
+ 1.5x
2
+ 0.5x
3
8
x
1
, x
2
, x
3
no negativos
La tabla de simplex inicial es
cB x
1
x
2
x
2
h
1
h
2
h
3
h
1
0 8 6 1 1 0 0 48
h
2
0 4 2 1.5 0 1 0 20
h
3
0 2 1.5 0.5 0 0 1 8
60 30 20 0 0 0 Z = 0
4.2. CAMBIOS DISCRETOS 113
La tabla de simplex que da la solucin ptima es:
60 30 20 0 0 0
x
1
x
2
x
3
h
1
h
2
h
3
0 h
1
0 2 0 1 2 8 24
20 x
3
0 2 1 0 2 4 8
60 x
1
1 1.25 0 0 0.5 1.5 2
0 5 0 0 10 10 Z = 280
Se desea realizar un cambio en el coste de x
2
, cuyo valor es 30 a 30 + , de modo
que se conserve la matriz ptima actual. Qu cambios se produciran en la tabla
anterior?
Recordamos que las las correspondientes a las restricciones pueden obtenerse
ordenando los clculos de la forma siguiente:
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 c

B
B
1
Nc

N
, siendo nulos
los costes reducidos de las variables bsicas. La solucin del problema es:
X
0
B
= B
1
b Z
0
= c

B
B
1
b
qu era ptima si
c

B
B
1
N c

N
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 z
2
c
2
, resultara:
z
2
c
2
=
_
0 20 60
_
_
_
2
2
1.25
_
_
(30 +) = 5.0 .
La tabla quedara en este caso en la siguiente forma:
60 30 + 20 0 0 0
x
1
x
2
x
3
h
1
h
2
h
3
0 h
1
0 2 0 1 2 8 24
20 x
3
0 2 1 0 2 4 8
60 x
1
1 1.25 0 0 0.5 1.5 2
0 5 0 0 10 10 280
Se observa que la tabla permanecer ptima si 5 0, es decir si 5. Este
hecho pone de maniesto que el coste reducido, 5, de una variable no bsica, x
2
, en la
tabla ptima es la cantidad mxima en que puede aumentar el coste de esta variable
en la funcin objetivo sin que vari la actual solucin ptima. Por tanto el valor de
114 TEMA 4. ANLISIS DE SENSIBILIDAD
c
2
, puede aumentar hasta 35. Tambin el valor de la funcin objetivo ser en este
caso el mismo ya que Z
0
= c

B
B
1
b y ninguna de estas matrices cambia si c
2
35.
Igualmente, c
2
puede disminuir todo lo que se quiera, pues no hay restriccin para
por la izquierda.
Si no se cumpliera esta condicin y c
2
pasara a ser, por ejemplo 40, la tabla nal
del simplex quedara:
Max 60 40 20 0 0 0
x
1
x
2
x
3
h
1
h
2
h
3
0 h
1
0 2 0 1 2 8 24
20 x
3
0 2 1 0 2 4 8
60 x
1
1 1.25 0 0 0.5 1.5 2
0 5 0 0 10 10 280
y habra que continuar hasta obtener de nuevo optimalidad. Sale x
1
y entra x
2
,
con lo que la nueva tabla quedar:
Max x
1
x
2
x
3
h
1
h
2
h
3
0 h
1
1.6 0 0 1 1.2 5.6 27.2
20 x
3
1.6 0 1 0 1.2 1.6 11.2
30 x
2
0.8 1 0 0 0.4 1.2 1.6
4 0 0 0 8 16 Z = 288
que ya es la tabla ptima.
La nueva solucin ptima con la variacin en c
2
= 40 es:
x
1
= 0, x
2
= 1.6, x
3
= 11.2 Z = 288.
4.2.2 Variacin en un coste de una variable bsica
Supongamos que el cambio lo realizamos ahora en c
1
= 60 que va a tomar el valor
60+. En este caso puede haber cambios en los costes reducidos de todas las
variables no bsicas:
c

B
B
1
N c

N
=
= ( 0 20 60 + )
_
_
2 2 8
2 2 4
1.25 0.5 1.5
_
_

_
30 0 0
_
=
=
_
5.0 + 1. 25 10.0 . 5 10.0 + 1. 5
_
.
La tabla ahora tomara el siguiente aspecto:
4.2. CAMBIOS DISCRETOS 115
60 + 30 20 0 0 0
x
1
x
2
x
3
h
1
h
2
h
3
0 h
1
0 2 0 1 2 8 24
20 x
3
0 2 1 0 2 4 8
60 + x
1
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 verica que todos las componentes del vector
_
5.0 + 1. 25 10.0 . 5 10.0 + 1. 5
_
son no negativas:
_
_
_
5.0 + 1. 25 0
10 0. 5 0
10.0 + 1. 5 0
=
_
_
_

5
1.25
= 4.0
20

10
1.5
= 6. 666 7
=
=4 20
Es decir que c
1
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 c
1
toma
el valor 100 y por tanto = 40. La tabla sera:
100 30 20 0 0 0
x
1
x
2
x
3
h
1
h
2
h
3
0 h
1
0 2 0 1 2 8 24
20 x
3
0 2 1 0 2 4 8
100 x
1
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 h
2
y sale x
3
, y aplicamos el algoritmo del simplex:
100 30 20 0 0 0
x
1
x
2
x
3
h
1
h
2
h
3
0 h
1
0 2 0 1 2 8 24
20 x
3
0 2 1 0 2

4 8
100 x
1
1 1.25 0 0 0.5 1.5 2
0 55 0 0 10 70 360
La solucin ptima del nuevo problema es:
x
1
= 4, x
2
= 0, x
3
= 0, con z = 400.
116 TEMA 4. ANLISIS DE SENSIBILIDAD
4.2.3 Cambios en los recursos
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 X
0
B
=
B
1
b y Z
0
= c

B
B
1
b son las nicas frmulas donde intervienen los recursos.
En concreto si el cambio se realiza en el segundo recurso:
Lo que vara es
X
0
B
= B
1
b =
_
_
1 2 -8
0 2 -4
0 -0.5 1.5
_
_
_
_
48
20 +
8
_
_
=
_
_
24 + 2
8 + 2
2 0.5
_
_
,
que tendra que tomar todos los valores positivos si queremos que se mantenga la
base actual.
_
_
_
24 + 2 0
8 + 2 0
2 0.5 0
Si no cumple la restriccin anterior, por ejemplo = 10, la tabla resultante sera
60 30 20 0 0 0
x
1
x
2
x
3
h
1
h
2
h
3
0 h
1
0 2 0 1 2 8 44
20 x
3
0 2 1 0 2 4 28
60 x
1
1 1.25 0 0 0.5 1.5 3
0 5 0 0 10 10 280
Esta solucin es dual factible, pero no primal factible y deberemos aplicar el
algoritmo dual del Simplex para continuar la resolucin del problema. Tras hacer
una iteracin del algoritmo dual del simplex, se obtiene que la solucin ptima del
programa modicado, con b
2
= 20 += 30, es la siguiente:
x
1
= 0, x
2
= 0, x
3
= 16, con z = 320.
4.2.4 Cambios en los coecientes tecnolgicos
En una columna de una variable no bsica
Si en el ejemplo anterior, cambiamos la segunda columna de la matriz de coecientes
tecnolgicos, y sta pasa a ser (5, 2, 2)
t
, con c
2
= 43, la tabla inicial quedara:
c
B
x
1
x
2
x
3
h
1
h
2
h
3
h
1
0 8 5 1 1 0 0 48
h
2
0 4 2 1.5 0 1 0 20
h
3
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 nal, que quedara como
sigue:
_
_
1 2 -8
0 2 -4
0 -0.5 1.5
_
_
_
_
5
2
2
_
_
=
_
_
7
4
2
_
_
,
y en el coste reducido de esta columna sera:
z
2
c
2
= (0, 20, 60)
_
_
7
4
2
_
_
43 = 3.
Y por tanto la tabla quedara:
60 30 20 0 0 0
x
1
x
2
x
2
h
1
h
2
h
3
0 h
1
0 7 0 1 2 8 24
20 x
3
0 4 1 0 2 4 8
60 x
1
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 modicado, con los cambios en la columna de la segunda
variable. Dicha solucin ptima es:
x
1
= 0, x
2
= 0, x
3
= 16, con z = 320.
Si lo que cambia es la columna de una variable bsica el problema es absolutamente
distinto y ms complicado, porque ya no se mantiene la matriz bsica, por lo que
hay que resolver el problema completamente desde el principio.
4.3 Incorporacin de una nueva actividad
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
x
4
con c
4
= 15 y a
t
4
= (1, 1, 1), tenemos:
118 TEMA 4. ANLISIS DE SENSIBILIDAD
c
B
x
1
x
2
x
3
x
4
h
1
h
2
h
3
h
1
0 8 6 1 1 1 0 0 48
h
2
0 4 2 1.5 1 0 1 0 20
h
3
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
z
4
c
4
= c

B
B
1
_
_
1
1
1
_
_
15 resulta no negativo.
En este caso podemos usar la solucin del dual c

B
B
1
= (0, 10, 10). As que
z
4
c
4
= (0, 10, 10)
_
_
1
1
1
_
_
15 = 5, la solucin sigue siendo ptima y no hace
falta introducir la nueva actividad en la base.
Si no fuera as calcularamos la nueva columna de coecientes. 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
0 2 -4
0 -0.5 1.5
_
_
_
_
1
1
1
_
_
=
_
_
6
2
1
_
_
.
La nueva tabla quedara:
60 30 20 15 0 0 0
x
1
x
2
x
3
x
4
h
1
h
2
h
3
0 h
1
0 2 0 6 1 2 8 24
20 x
3
0 2 1 2 0 2 4 8
60 x
1
1 1.25 0 1 0 0.5 1.5 2
0 5 0 5 0 10 10 z = 280
4.4 Incorporacin de nuevas restricciones
Cuando incluimos nuevas restricciones y la solucin anterior verica las nuevas re-
stricciones, esta solucin sigue siendo ptima. Las restricciones que no son vericadas
por la solucin actual hay que incluirlas en la tabla.
Para ilustrarlo, proponemos el ejemplo anterior, en el que incluimos la restriccin:
x
1
+x
2
+x
3
7 =x
1
+x
2
+x
3
+h
4
= 7, donde h
4
es una variable de holgura.
Como la solucin ptima X
B
del problema original es: x
1
= 2, x
2
= 0, x
3
= 8,
4.5. PROGRAMACIN PARAMTRICA 119
y no verica la restriccin anterior, entonces hay que incluirla.
Tabla I 60 30 20 0 0 0 0
x
1
x
2
x
3
h
1
h
2
h
3
h
4
0 h
1
0 2 0 1 2 8 0 24
20 x
3
0 2 1 0 2 4 0 8
60 x
1
1 1.25 0 0 0.5 1.5 0 2
0 h
4
1* 1 1* 0 0 0 1 7
0 5 0 0 10 10 280
Para conservar x
1
y x
3
en la base hay que hacer nulos los elementos sealados
con asterisco en la tabla anterior. Para conseguirlo, basta restar a la la cuarta la
suma de las dos anteriores. Posteriormente actualizamos la la de costes reducidos,
obteniendo la Tabla II, que aparece a continuacin.
Tabla II 60 30 20 0 0 0 0
x
1
x
2
x
3
h
1
h
2
h
3
h
4
0 h
1
0 2 0 1 2 8 0 24
20 x
3
0 2 1 0 2 4 0 8
60 x
1
1 1.25 0 0 0.5 1.5 0 2
0 h
4
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 x
1
= 3, x
2
= 0, x
3
= 4, Z = 260.
4.5 Programacin Paramtrica
4.5.1 Parametrizacin de los coecientes de coste
Dado el programa lineal:
Max Z =
_
C
t
+C
0
t
_
X
sujeto a AX b
X 0
El problema consiste en optimizar Z segn los valores de .
Los valores anteriores representan:
parmetro real,
C coecientes independientes de la funcin objetivo,
120 TEMA 4. ANLISIS DE SENSIBILIDAD
C
0
vector de coecientes del parmetro en la funcin objetivo.
Ejemplo 54 En un problema problema paramtrico cuya funcin objetivo sea
Z = (3 )x
1
+ (2 + 3)x
2
= [(3, 2) +(1, 3)]
_
x
1
x
2
_
los coecientes del objetivo, siguiendo la notacin anterior son:
C =
_
3
2
_
; C
0
=
_
1
3
_
C
t
= (3, 2); C
0
t
= (1, 3)
Los costes reducidos para un problema paramtrico se podrn escribir de la forma
siguiente:
(

Z
j


C
j
)() = (C
t
B
+C
0
t
B
)y
j
(C
j
+C
0
j
) = (4.1)
= C
t
B
y
j
C
j
+(C
0
t
B
y
j
C
j
) =
= Z
j
C
j
+(Z
0
j
C
0
j
).
Y el valor de la funcin objetivo se escribir

Z() = (C
t
B
+C
0
t
B
)x
B
= C
t
B
x
B
+C
0
t
B
x
B
= Z +Z
0
(4.2)
donde hemos denominado:
Z
0
j
C
0
j
= C
t
0
B
y
j
C
j
Z
0
= C
t
0
B
x
B
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.
Algoritmo de programacin paramtrica.
Paso 0: Calcular la solucin ptima para = 0 y aadir a la tabla nal una
primera la y una primera columna con los valores de C
0
. Adems se incluye
una ltima la con los Z
0
j
C
0
j
0 y Z
0
.
Paso 1: Imponer a la tabla la condicin de optimalidad

Z
j


C
j
0 (caso max-
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 nitos y aplicar el
algoritmo del simplex hallando la solucin correspondiente. Introducid las
columnas no bsicas con

Z
j


C
j
= 0.
Paso 3: Repetir los pasos 1 y 2 hasta que no puedan hallarse nuevas soluciones.
Ejemplo 55 Resolver el programa lineal paramtrico:
Max Z = (4 +)x
1
+ (7 )x
2
+ (3 +)x
3
s.a.: 2x
1
+x
2
+ 2x
3
30
x
1
+ 2 x
2
+ 2x
3
45
x
1
, x
2
, x
3
0
Tenemos que C
t
= (4, 7, 3) C
0
t
= (1, 1, 1)
Iteracin 1 Paso 0: Si lo revolvemos para = 0, tenemos:
Max Z = 4x
1
+ 7x
2
+ 3x
3
s.a.: 2x
1
+x
2
+ 2x
3
+x
4
= 30
x
1
+ 2 x
2
+ 2x
3
+x
5
= 45
x
1
, x
2
, x
3
, x
4
, x
5
0
4 7 3 0 0
Max x
1
x
2
x
3
x
4
x
5
X
B
x
4
0 2 1 2 1 0 30
x
5
0 1 2

2 0 1 45
Z
j
C
j
4 7 3 0 0 Z = 0
min = {
30
1
,
45
2
} =
45
2
.
4 7 3 0 0
Max x
1
x
2
x
3
x
4
x
5
X
B
x
4
0 3/2

0 1 1 -1/2 15/2
x
2
7 1/2 1 1 0 1/2 45/2
Z
j
C
j
1/2 0 4 0 7/2 Z = 315/2
min = {
15/2
3/2
,
45/2
1/2
} = 5. Entra x
1
y sale x
4
.
Y obtenemos la tabla ptima para = 0 que aparece a continuacin:
Tabla I C
0
t
1 1 1 0 0
C
t
4 7 3 0 0
C
0
t
B
C
t
B
x
1
x
2
x
3
x
4
x
5
X
B
1 x
1
4 1 0 2/3 2/3 -1/3 5
1 x
2
7 0 1 2/3 -1/3 2/3 20
Z
j
C
j
0 0 13/3 1/3 10/3 Z = 160
Z
0
j
C
0
j
0 0 1 1 1 Z() = 15
122 TEMA 4. ANLISIS DE SENSIBILIDAD
Iteracin 1 Paso 1:
Si calculamos (

Z
j


C
j
)() tenemos:
(

Z
j


C
j
)() = (Z
j
C
j
) +(Z
0
j
C
0
j
)
(

Z
3


C
3
)() = 13/3 + (1) = 13/3 0
(

Z
4


C
4
)() = 1/3 + (1) = 1/3 + 0
(

Z
5


C
5
)() = 10/3 + (1) = 10/3 0
13/3
1/3
10/3
Para
1
3

10
3
la solucin ptima es :
x
1
= 5, x
2
= 20, x
3
= 0, z = 160 15.
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.

Z
j


C
j
= (0, 0, 13/3 1/3, 1/3 1/3, 10/3 (1/3)) = (0, 0,
14
3
, 0,
11
3
)
Veamos la otra solucin bsica que corresponde a = 1/3. Introduciendo en
la base x
4
sale x
1
pues
y
4
=
_
2/3

1/3
_
Tabla II C
0
t
1 1 1 0 0
C
t
4 7 3 0 0
C
0
t
B
C
t
B
x
1
x
2
x
3
x
4
x
5
X
B
0 x
4
0 3/2 0 1 1 1/2 15/2
1 x
2
7 1/2 1 1 0 1/2 45/2
Z
j
C
j
1/2 0 4 0 7/2 Z = 315/2
Z
0
j
C
0
j
3/2 0 2 0 1/2 Z() = 45/2
Iteracin 2 Paso 1
(

Z
j


C
j
)() = (Z
j
C
j
) +(Z
0
j
C
0
j
)
(

Z
1


C
1
)() = 1/2 3/2 0
(

Z
3


C
3
)() = 4 2 0
(

Z
5


C
5
)() = 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:
x
1
= 0, x
2
= 45/2, x
3
= 0, Z = 315/2 (45/2).
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.
Z
j
C
j
= (0, 0,
13
3

10
3
,
1
3
+
10
3
,
10
3

10
3
)) = (0, 0, 1,
11
3
, 0).
Si a partir de la Tabla I, entra en la base x
5
por x
2
pues
y
5
=
_
1/3
2/3

_
Tabla III C
0
t
1 1 1 0 0
C
t
4 7 3 0 0
C
0
t
B
C
t
B
x
1
x
2
x
3
x
4
x
5
X
B
1 x
1
4 1 1/2 1 1/2 0 15
0 x
5
0 0 3/2 1 1/2 1 30
Z
j
C
j
0 5 1 2 0 Z = 60
Z
0
j
C
0
j
0 3/2 0 1/2 0 Z() = 15
Iteracin 3 Paso 1
(

Z
j


C
j
)() = (Z
j
C
j
) +(Z
0
j
C
0
j
)
(

Z
2


C
2
)() = 5 + (3/2) 0
(

Z
3


C
3
)() = 1 0
(

Z
4


C
4
)() = 2 + (1/2) 0
De aqu se obtiene que 10/3 y 4 (Redundante).
As que para 10/3 la solucin ptima es:
x
1
= 15, x
2
= 0, x
3
= 0, Z = 60 + 15.
Iteracin 3 Paso 2:
Ya no hay ms soluciones posibles.
En resumen la solucin del problema paramtrico es:
Si
1
3

_

_
x
1
= 0
x
2
=
45
2
x
3
= 0
Z =
315
2

45
2

124 TEMA 4. ANLISIS DE SENSIBILIDAD
Si
1
3

10
3

_

_
x
1
= 5
x
2
= 20
x
3
= 0
Z = 160 15
Si
10
3

_

_
x
1
= 15
x
2
= 0
x
3
= 0
Z = 60 + 15
4.5.2 Parametrizacin de los recursos
Dado el programa lineal:
Max Z = C
t
X
sujeto a AX b +b
0
X 0
Si denimos

X
B
() = B
1
(b +b
0
) = B
1
b +B
1
b
0
= X
B
+X
0
B
X
0
B
= B
1
b
0

Z() = C
t
B

X
B
= C
t
B
(X
B
+X
0
B
) = C
t
B
X
B
+C
t
B
X
0
B
= Z +Z
0

siendo Z
0
= C
t
B
X
0
B
.
Algoritmo de programacin paramtrica.
Paso 0: Calcular la solucin ptima para = 0 y aadir a la tabla nal una columna
con los X
0
B
y Z
0
.
Paso 1: Imponer a la tabla la condicin de factibilidad X
B
() 0 (tanto para el
caso maximizante como para el caso minimizante) determinando el recorrido
del parmetro para el cual la tabla permanece ptima.
Paso 2: Sustituir por aquellos valores extremos que sean nitos y aplicar el
algoritmo dual del simplex a las las con X
B
() = 0.
Paso 3: Repetir los pasos 1 y 2 hasta que no puedan hallarse nuevas soluciones.
Ejemplo 56 Resolver el siguiente problema de programacin paramtrica de los
recursos
Max Z = 4x
1
+ 7x
2
+ 3x
3
s.a.: 2x
1
+x
2
+ 2x
3
30
x
1
+x
2
+ 2x
3
45 2
x
1
, x
2
, x
3
0
b =
_
30
45
_
b
0
=
_
1
2
_
4.5. PROGRAMACIN PARAMTRICA 125
Paso 0:
La tabla nal con = 0 es la que aparece en el ejemplo anterior.
C
t
4 7 3 0 0
C
t
B
x
1
x
2
x
3
x
4
x
5
X
B
x
1
4 1 0 2/3 2/3 -1/3 5
x
2
7 0 1 2/3 -1/3 2/3 20
Z
j
C
j
0 0 13/3 1/3 10/3 Z = 160
Tenemos por tanto que la matriz B
1
es la siguiente:
B
1
=
_
2/3 1/3
1/3 2/3
_
Y por tanto tendremos que
X
0
B
= B
1
b
0
=
_
2/3 1/3
1/3 2/3
__
1
2
_
=
_
0
1
_
;
Z
0
= C
t
B
X
0
B
. =
_
4 7
_
_
0
1
_
= 7
C
t
4 7 3 0 0
C
t
B
x
1
x
2
x
3
x
4
x
5
X
B
x
1
4 1 0 2/3 2/3 -1/3 5 0
x
2
7 0 1 2/3 -1/3 2/3 20 -1
Z
j
C
j
0 0 13/3 1/3 10/3 Z = 160 -7
Iteracin 1. Paso 1:

X
B
() = X
B
+X
0
B
Si imponemos la condicin de factibilidad

X
B
() 0 tendremos

X
B
() 0 =
5 0
20 0
_
= 20.
As para 20 tendremos que la solucin ptima ser:
x
1
= 5
x
2
= 20
x
3
= 0
_
_
_
con Z = 160 7.
Iteracin 1. Paso 2: Para = 20 obtenemos que

X
B
() = (5, 0). Por lo
que hay solucin mltiple. Entra en la base la variable x
4
y sale de la base x
2
. Si
Aplicamos el algoritmo dual del simplex, la nueva tabla queda:
126 TEMA 4. ANLISIS DE SENSIBILIDAD
C
t
4 7 3 0 0
C
t
B
x
1
x
2
x
3
x
4
x
5
X
B
X
0
B
x
1
4 1 2 2 0 1 45 -2
x
4
0 0 -3 -2 1 -2 -60 3
Z
j
C
j
0 1 5 0 4 Z = 180 Z
0
=-8
Paso 3
Iteracin 3 Paso 1. As tendremos que imponiendo la condicin de factibilidad

X
B
() 0 =
45 2 0
60 + 3 0
_
=
45/2
20
_
Por tanto si 20 45/2. la solucin ptima que se obtiene es:
x
1
= 45 2
x
2
= 0
x
3
= 0
_
_
_
con z = 180 8.
Iteracin 2 Paso 2.
Para = 45/2
C
t
4 7 3 0 0
C
t
B
x
1
x
2
x
3
x
4
x
5
X
B
x
1
4 1 2 2 0 1 0
x
4
0 0 -3 -2 1 -2
15
2
Z
j
C
j
0 1 5 0 4 Z = 0

X
B
(
45
2
) =
_
x
1
x
4
_
=
_
0
15
2
_
Para > 45/2 452 0. Si aplicaramos el dual del simple, como la primera
la tiene los coecientes positivos, el dual sera no acotado y por tanto.el problema
primal sera infactible.
En resumen, la solucin de este problema paramtrico es:
Si 20
_

_
x
1
= 5
x
2
= 20
x
3
= 0
Z = 160 7
Si 20
45
2

_

_
x
1
= 45 2
x
2
= 0
x
3
= 0
Z = 180 8
Si >
45
2
El problema no tiene solucin
Tema 5
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 gura 5.1):
Ejemplo 57 A y B son los puntos de origen con disponibilidad de 30 y 15 unidades
para transportar. Los destinos estn representados por los nodos 1, 2, 3 que deman-
dan 15, 5, 25 unidades respectivamente. Los nmeros sobre las lneas indican el
coste que se produce al transportar una unidad por esa ruta.
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:
Cliente 1 Cliente 2 Cliente 3 Cliente 4 Capacidad
Almacen 1 8 6 10 9 35
Almacen 2 9 12 13 7 50
Almacen 3 14 9 16 5 40
Demanda 45 20 30 30 125
127
128 TEMA 5. EL PROBLEMA DE TRANSPORTE
A
B
3
2
1 7
5
2
4
15
5
5
3
25
15
30
Figura 5.1: Diagrama de transporte.
5.2 Planteamiento como un problema de progra-
macin lineal
El problema del ejemplo 58 es balanceado o equilibrado. Esto signica que la suma
de las unidades producidas es igual a la suma de las unidades demandadas. En
este caso la produccin total es 35 + 50 + 40 = 125 sacos y la demanda total es
45 + 20 + 30 + 30 = 125 sacos. El problema tiene 4 + 3 = 7 restricciones y 12
variables. Llamando x
ij
la cantidad enviada desde la planta i a la ciudad j, el
problema consiste en minimizar los costes de transporte, esto es:
min 8x
11
+6x
12
+10x
13
+9x
14
+9x
21
+12x
22
+13x
23
+7x
24
+14x
31
+9x
32
+16x
33
+5x
34
s.a.:
_

_
x
11
+x
12
+x
13
+x
14
= 35
x
21
+x
22
+x
23
+x
24
= 50
x
31
+x
32
+x
33
+x
34
= 40
x
11
+x
21
+x
31
= 45
x
12
+x
22
+x
32
= 20
x
13
+x
23
+x
33
= 30
x
14
+x
24
+x
34
= 30
con x
ij
0
Aunque hay 7 restricciones solo 6 de ellas son independientes (cualquiera de ellas
puede obtenerse por combinacin lineal de las restantes). Por ejemplo la ltima
ecuacin puede obtenerse restando a la suma de las tres primeras la suma de las tres
siguientes. Por este motivo la base est formada por 6 elementos. Obsrvese que por
la forma del sistema el problema dual solo tiene dos incgnitas en cada ecuacin.
Este hecho es el que se utiliza para simplicar el mtodo de Simplex dando lugar al
Algoritmo de Transporte que describiremos en este tema.
5.3. PROBLEMA NO EQUILIBRADO 129
5.3 Problema no equilibrado
Cuando el problema no es balanceado (equilibrado), se transforma en uno balanceado
creando un origen cticio o un destino cticio:
Si la demanda es mayor que la oferta creamos un origen cticio con
produccin = demanda total - oferta total.
Si la demanda es menor que la oferta creamos un destino cticio con
demanda = oferta total - demanda total
Normalmente, en ambos casos se asigna un coste de transporte nulo, ya que las
unidades no se mueven desde origen cticio o hacia destino cticio. No obstante, en
ocasiones, pueden asignarse costes no nulos al origen cticio, que puede interpretarse
como el coste de almacenamiento debido al exceso de oferta. De forma anloga, se
puede asignar un coste no nulo al destino cticio, que se supone equivalente a la
estimacin del gasto asociado al hecho de no atender la demanda, ya que este hecho
puede acarrear como consecuencia la prdida de clientes.
5.4 Propiedades del problema de transporte
1. El problema de transporte tiene al menos una solucin factible: x
ij
=
aibj
M
donde
M es la cantidad total transportada, a
i
la disponibilidad del origen i y b
j
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 verica las restricciones de
disponibilidad y demanda con a lo sumo m+n 1 variables distintas de cero (m =
n
o
de orgenes, n = n
o
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.
5.5 Determinacin de una solucin inicial
Como cualquier mtodo de simplex, el algoritmo de transporte precisa de una solu-
cin bsica factible inicial. Exponemos a continuacin varios mtodos que nos per-
miten hallar una solucin de partida.
130 TEMA 5. EL PROBLEMA DE TRANSPORTE
5.5.1 Mtodo de la esquina Noroeste
Este mtodo nos conduce a una solucin factible con, a lo sumo, m+n1 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 x
ij
= min(a
i
, b
j
) y restar esta cantidad a a
i
, b
j
de modo que bien
una la o una columna de la tabla quede satisfecha. Se elimina esta la o columna
de la tabla.
2) Si no queda la o columna parar. En caso contrario aplicar de nuevo el paso 1 a
la tabla resultante
3) Igualad a ceros las x
ij
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
Se comienza el algoritmo seleccionando la celda (1,1) (la esquina NO). Se asigna
a x
11
el valor 35 = min{35, 45} . Se resta este valor a a
1
= 35 y a b
1
= 45, con lo
que la disponibilidad del primer origen se agota. Los elementos recuadrados son los
que se van eliminando.
Destino 1 Destino 2 Destino 3 Destino 4 Produccin
Origen 1 35 - - - 35 0
Origen 2 50
Origen 3 40
Demanda 45 10 20 30 30
Los valores de la solucin inicial para las variables de la primera la quedan ya
decididos y se deja de considerar esta la en los siguientes pasos del algoritmo.
Destino 1 Destino 2 Destino 3 Destino 4 Produccin
O r i g e n 1 3 5 - - - 3 5
Origen 2 50
Origen 3 40
Demanda 45 10 20 30 30
5.5. DETERMINACIN DE UNA SOLUCIN INICIAL 131
Ahora la esquina NO es la celda (2,1). Repitiendo el proceso obtenemos
Destino 1 Destino 2 Destino 3 Destino 4 Produccin
O r i g e n 1 3 5 - - - 3 5
Origen 2 10 50 40
Origen 3 40
Demanda 45 10 0 20 30 30
Se elimina la primera columna.
D e s t i n o 1 Destino 2 Destino 3 Destino 4 Produccin
O r i g e n 1 3 5 - - - 3 5
Origen 2 1 0 20 50 40 20
Origen 3 - 40
Demanda 4 5 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 jados los valores de sus variables en la
salucin inicial..
D e s t i n o 1 D e s t i n o 2 Destino 3 Destino 4 Produccin
O r i g e n 1 3 5 - - - 3 5
Origen 2 1 0 2 0 20 50 40 20 0
Origen 3 - - 40
Demanda 4 5 2 0 30 10 30
Continuando el algoritmo obtenemos sucesivamente las tablas:
D e s t i n o 1 D e s t i n o 2 Destino 3 Destino 4 Produccin
O r i g e n 1 3 5 - - - 3 5
O r i g e n 2 1 0 2 0 2 0 - 5 0
Origen 3 - - 10 40 30
Demanda 4 5 2 0 30 10 0 30
D e s t i n o 1 D e s t i n o 2 D e s t i n o 3 Destino 4 Produccin
O r i g e n 1 3 5 - - - 3 5
O r i g e n 2 1 0 2 0 2 0 - 5 0
Origen 3 - - 1 0 30 40 30 0
Demanda 4 5 2 0 3 0 30 0
132 TEMA 5. EL PROBLEMA DE TRANSPORTE
D e s t i n o 1 D e s t i n o 2 D e s t i n o 3 D e s t i n o 4 Produccin
O r i g e n 1 3 5 - - - 3 5
O r i g e n 2 1 0 2 0 2 0 - 5 0
O r i g e n 3 - - 1 0 3 0 4 0
Demanda 4 5 2 0 3 0 3 0
Las casillas con guiones contendran los valores nulos.
La solucin inicial ser:
35
8
0
6
0
10
0
9
10
9
20
12
20
13
0
7
0
14
0
9
10
16
30
5
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.
5.5.2 Mtodo de costo mnimo
En este mtodo se tiene en cuenta el costo correspondiente a cada celda.
Consiste en la aplicacin del siguiente algoritmo:
1. Localizar la celda que tenga asignado el menor costo y asignarle la mayor
cantidad posible de ujo (como se hace en la celda superior izquierda en el
mtodo de la Esquina Noroeste). Si hay empate en el mnimo coste, elegir la
celda a la que pueda asignarse una mayor cantidad de ujo. Si hay empate en
el costo y en el ujo elegir una de estas celdas arbitrariamente.
2. Reducir la oferta y la demanda en la cantidad de ujo que se ha asignado a
la celda seleccionada y poner ceros en las restantes celdas. Los valores de la
solucin inicial en esta la o columna ya quedan decididos. Para continuar
asignando valores en las siguientes las o columnas, se deja de considerar la
la o columna que ya ha quedado saturada.
3. Si se han agotado todas las ofertas o demandas, igualad a cero las x
ij
que no
tienen valor asignado y ya tenemos la solucin bsica factible inicial. En caso
contrario, volver al paso 1.
En las siguientes tablas mostramos la aplicacin de este algoritmo al caso del
ejemplo 59.
5.5. DETERMINACIN DE UNA SOLUCIN INICIAL 133
En el primer paso elegimos la celda (3,4), por ser la de coste mnimo, 5, y le
asignamos un ujo de 30,
8 6 1 0 9 35
9 1 2 1 3 7 50
1 4 9 1 6 (30)5 40 ,10
45 20 30 30 , 0
La solucin de la columna cuarta queda decidida. En la siguiente tabla escribimos
est columna, con letra ms pequea para dejar de considerarla en los siguientes
pasos.
8 6 1 0 - 35
9 1 2 1 3 - 50
1 4 9 1 6 3 0 40 ,10
45 20 30 3 0
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 2 0 1 0 - 35 15
9 - 1 3 - 50
1 4 - 1 6 3 0 40 ,10
45 2 0 30 3 0
En la tabla resultante se selecciona la celda (1,1) con coste 8, asignandole el
valor 15, lo que permite eliminar la primera la.
1 5 2 0 - - 3 5
9 - 1 3 - 50
1 4 - 1 6 3 0 10
45 30 2 0 30 3 0
Repitiendo el proceso resultan sucesivamente seleccionadas las celdas (2,1), (2,3) y
(3,3):
1 5 2 0 - - 3 5
3 0 - 1 3 - 50 20
- - 1 6 3 0 10
4 5 2 0 30 3 0
1 5 2 0 - - 3 5
3 0 - 2 0 - 5 0
- - 1 6 3 0 10
4 5 2 0 30 10 3 0
1 5 2 0 - - 3 5
3 0 - 2 0 - 5 0
- - 1 0 3 0 5 0
4 5 2 0 3 0 3 0
134 TEMA 5. EL PROBLEMA DE TRANSPORTE
As que la solucin inicial obtenida por este mtodo es:
15
8
20
6
0
10
0
9
30
9
0
12
20
13
0
7
0
14
0
9
10
16
30
5
El valor de la funcin objetivo para esta solucin es:
8 15 + 6 20 + 9 30 + 13 20 + 16 10 + 5 30 = 1080 u.m.
que es mejor que la solucin obtenida previamente por el mtodo de la esquina
noroeste (ENO).
5.5.3 Mtodo de Vogel
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. Denimos la Penalizacin por la y columna como la diferencia (en valor ab-
soluto) entre los dos costes menores de esta la o columna..
2. Elegir la la o columna de mayor penalizacin (en caso de empate seleccionar
cualquiera de ellas arbitrariamente) y situar en la celda de menor coste el
mayor nmero posible de unidades, disminuyendo las demandas y ofertas en la
cantidad situada en esta celda. Eliminar la la o columna cuya disponibilidad
o demanda sea 0.
3. Repetir los pasos 1 y 2 con la tabla restante.
4. Igualar a cero las incgnitas no denidas por el algoritmo anterior.
Aplicamos el mtodo de Vogel al mismo problema 59:
1. Las penalizaciones correspondientes a las las y columnas estn indicadas en
la ltima columna y la de la siguiente tabla:
D 1 D 2 D 3 D 4 Produccin Pen. l
O 1 8 6 1 0 9 35 2
O 2 9 1 2 1 3 7 50 2
O 3 1 4 9 1 6 5 40 4
Demanda 45 20 30 30
Pen. col 1 3 3 2
5.5. DETERMINACIN DE UNA SOLUCIN INICIAL 135
2. Seleccionamos la la tercera (penalizacin 4) y la celda correspondiente a la
ciudad 4 cuyo coste (5) es el menor de esta la. Aqu colocamos el valor 30 y
actuamos de forma similar al mtodo de la esquina noroeste
D 1 D 2 D 3 D 4 Produccin Pen l
O 1 8 6 1 0 9 35 2
O 2 9 1 2 1 3 7 50 2
O 3 1 4 9 1 6 (30)5 40 10 4
Demanda 45 20 30 30 0
Pen col 1 3 3 2
Suprimo la columna cuarta y volvemos al paso 1 calculando de nuevo las pena-
lizaciones
D 1 D 2 D 3 D 4 Produccin Pen l
O 1 8 6 1 0 - 35 2
O 2 9 1 2 1 3 - 50 3
O 3 1 4 9 1 6 3 0 40 10 5
Demanda 45 20 30 3 0
Pen col 1 3 3
Seleccionamos ahora la la tercera (penalizacin 5) y la celda correspondiente a
la D2, cuyo coste (9), es el menor de la la. Aqu colocamos el valor 10, que es el
mximo posible.
D 1 D 2 D 3 D 4 Produccin Pen l
O 1 8 6 1 0 - 35 2
O 2 9 1 2 1 3 - 50 3
O 3 1 4 (10)9 1 6 3 0 40 10 0 5
Demanda 45 20 10 30 3 0
Pen col 1 3 3
Eliminamos la la tercera y calculamos de nuevo las penalizaciones. La mayor
penalizacin corresponde a la columna D2 (penalizacin 6). Seleccionamos casilla
primera de la columna D2, su coste 6 es el mnimo de esta columna, y asignamos el
valor 10 = min(35, 10). Suprimimos despues la columna segunda.
D 1 D 2 D 3 D 4 Produccin Pen l
O 1 8 1 0 1 0 - 35 25 2
O 2 9 - 1 3 - 50 4
O 3 1 4 1 0 - 3 0 4 0
Demanda 45 2 0 30 3 0
Pen col 1 3
136 TEMA 5. EL PROBLEMA DE TRANSPORTE
En la la 2 (mayor penalizacin), selecciono la D1 de coste 9, y colocamos el
valor 45, eliminando la primera columna.
D 1 D 2 D 3 D 4 Produccin Pen l
O 1 8 1 0 1 0 - 35 25 2
O 2 459 - 1 3 - 50 5 4
O 3 - 1 0 - 3 0 4 0
Demanda 45 0 2 0 30 3 0
Pen col 1 3
D 1 D 2 D 3 D 4 Produccin Pen l
O 1 - 1 0 1 0 - 35 25 0
O 2 4 5 - 1 3 - 50 5 0
O 3 - 1 0 - 3 0 4 0
Demanda 4 5 2 0 30 3 0
Pen col 3
Se asigna ahora el valor 25 en la casilla (1,3) suprimiendose depus la la 1 que
queda saturada.
D 1 D 2 D 3 D 4 Produccin Pen l
O 1 - 1 0 25 - 35 25 0 0
O 2 4 5 - 1 3 - 50 5 0
O 3 - 1 0 - 3 0 4 0
Demanda 4 5 2 0 30 5 3 0
Pen col 3
Por ltimo obtenemos la solucin inicial de Vogel asignando el valor 5 en la
casilla (2,3):
D 1 D 2 D 3 D 4
O 1 08 106 251 0 09
O 2 459 01 2 51 3 07
O 3 01 4 109 01 6 305
El valor de la funcin objetivo correspondiente a la solucin inicial de Vogel es:
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
5.6 Denicin de Ciclo
Un ciclo es una sucesin de al menos 4 celdas cumpliendo las condiciones siguientes:
1. Dos celdas consecutivas estn en la misma la o en la misma columna.
2. Tres celdas consecutivas no estn en la misma la o columna.
3. La primera y la ultima celda estn, bien en la misma la, bien en la misma
columna.
Los esquemas que siguen representan distintos modelos de ciclos. Las celdas que
forman el ciclo son las que contienen las puntas de echa. Se puede comenzar el
ciclo por cualquiera de estas celdas.
Ejemplos de diversos tipos de ciclos.
Teorema 10 En un problema de transporte con m orgenes y n destinos, un con-
junto de m + n 1 celdas no contiene ciclos si y solo si las m + n 1 variables
correspondientes a estas celdas son bsicas.
5.7 Algoritmo de transporte (forma minimizante)
El algoritmo que tratamos aqu es una adaptacin del mtodo de Simplex y es
aplicable a problemas balanceados. Si el problema no fuera balanceado hay que
equilibrarlo previamente aadiendo un origen o un destino cticio, segn proceda.
Suponemos que las soluciones obtenidas en cada paso del algoritmo no son dege-
neradas, es decir que hay m+n1 posiciones localizadas distintas de cero. La forma
de actuar en el caso de que la solucin sea degenerada se tratar ms adelante.
138 TEMA 5. EL PROBLEMA DE TRANSPORTE
El algoritmo de transporte consta de los siguientes pasos.
1. Construir una solucin bsica factible.
2. Analizar si la solucin actual es la ptima o mejorarla en su caso:
(a) Resolver el sistema u
i
+v
j
c
ij
= 0 (una ecuacin para cada una de las
variables bsicas de la solucin actual). Las incgnitas de este sistema son
u
i
y v
j
, siendo c
ij
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 (u
i
+ v
j
c
ij
) 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 x
ij
, 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
Aplicamos el algoritmo de transporte al problema 59, usando como solucin
inicial la que hemos hallado por el mtodo de la esquina noroeste (ENO), que era:
D 1 D 2 D 3 D 4 Produccin
O 1 35 35
O 2 10 20 20 50
O 3 10 30 40
Demanda 45 20 30 30
Esta solucin tiene 3+41 = 6 variable no nulas, por lo tanto no es degenerada.
El valor del objetivo es:
8 35 + 9 10 + 12 20 + 13 20 + 16 10 + 5 30 = 1180 u.m.
Fijamos 4 posiciones en cada celda, con objeto de incorporar ordenadamente la
informacin que va obtenindose a lo largo del algoritmo. Cada celda tendr:
5.7. ALGORITMO DE TRANSPORTE (FORMA MINIMIZANTE) 139
solucin coste reducido
signo precio unitario
En la ltima la o columna ponemos la solucin u
i
, v
j
del sistema correspondiente
formado por las siguientes 3 + 4 1 = 6 ecuaciones:
u
1
+v
1
= 8, u
2
+v
1
= 9 , u
2
+v
2
= 12, u
2
+v
3
= 13, u
3
+v
3
= 16, u
3
+v
4
= 5
Tomando u
1
= 0, se obtiene sucesivamente:
v
1
= 8, u
2
= 1, v
2
= 11, v
3
= 12, u
3
= 4, v
4
= 1
D 1 D 2 D 3 D 4 u
i
O 1
(35)
8
5
6
2
10
-8
9
0
O 2
(10)
9
(20)
- 12

(20)
+ 13

-5
7
1
O 3
-2
14
6*
+ 9

(10)
- 16

(30)
5
4
v
j
8 11 12 1
El coste reducido mximo, que en este caso es 6, lo marcamos con un asterisco.
En esta celda va a estar la variable que entra en la base. . El coste reducido ms
positivo corresponde a la posicin (3,2) cuyo coste reducido es 6. Esta variable es
la que va a entrar de la base. Para determinar la variable que va a salir construyo
el ciclo, que est marcado con echas: (3,2),(3,3),(2,3),(2,2). Los signos asignados
son respectivamente +, , +, . En las casillas sealadas con la variable toma
los valores 10 y 20. Siendo 10 el menor valor. Es por tanto x
33
la variable que va
a salir de la base. Resto 10 unidades a las casillas sealadas con y sumo 10 a las
celdas sealadas con ms, obtenindose la nueva solucin.
D 1 D 2 D 3 D 4 u
i
O 1
(35)
- 8

5*
+ 6

2
10
2
9
0
O 2
(10)
+ 9

(10)
- 12

(30)
13
1
7
1
O 3
8
14
(10)
9
6
16
(30)
5
2
v
j
8 11 12 7
El sistema correspondiente a este nueva solucin es:
u
1
+v
1
= 8, u
2
+v
1
= 9 , u
2
+v
2
= 12, u
2
+v
3
= 13, u
3
+v
2
= 9, u
3
+v
4
= 5
Tomando u
1
= 0, se obtiene sucesivamente:
140 TEMA 5. EL PROBLEMA DE TRANSPORTE
v
1
= 8, u
2
= 1, v
2
= 11, v
3
= 12, u
3
= 2, v
4
= 7
El valor del objetivo para esta solucin es ahora:
8 35 + 9 10 + 12 10 + 13 30 + 9 10 + 5 30 = 1120 u.m.
Ahora el pivote est en la posicin (1,2) correspondiente al coste reducido m-
ximo, y la variable que entra es x
12
, y la que sale x
22
. Restamos 10 a los valores
de las celdas (2,2), (1,1), que estn sealadas con el signo menos, y sumamos 10 a
los de las celdas (1,2), (2,1) que estn marcadas con el signo ms. Obtenemos una
solucin bsica factible mejorada:
D 1 D 2 D 3 D 4
O 1 25 10
O 2 20 30
O 3 10 30
con valor del objetivo 1070 u.m.
Repitiendo el proceso llegamos a la tabla siguiente que tampoco es ptima por
tener valor 2 en la posicin (1,3), con coste reducido 2, que como es el ms positivo
resulta ser el pivote. El ciclo y las asignaciones de signo tambin estn sealadas en
la tabla:
D 1 D 2 D 3 D 4 u
i
O 1
(25)
- 8

10
6
2*
+ 10

7
9
0
O 2
(20)
+ 9

5
12
(30)
- 13

4
7
1
O 3
3
14
(10)
9
1
16
(30)
5
3
v
j
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:
D 1 D 2 D 3 D 4
O 1 10 25
O 2 45 5
O 3 10 30
El valor del objetivo es 1020 u.m.
Esta solucin es ya optima, pues obtenemos, como puede verse en la siguiente
tabla, todos los costes reducidos negativos o cero.
5.8. SOLUCIONES DEGENERADAS 141
D 1 D 2 D 3 D 4 u
i
O 1
2
8
10
6
25
10
7
9
0
O 2
(45)
9
3
12
5
13
2
7
3
O 3
5
14
(10)
9
3
16
(30)
5
3
v
j
6 6 10 2
5.8 Soluciones degeneradas
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+n1 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.
Ejemplo 60 Si un problema tiene la solucin inicial indicada en la tabla siguiente
(los nicos valores no nulos estn indicados entre parntesis y el coste del transporte
est indicado con el nmero ms pequeo).
Ciudad 1 Ciudad 2 Ciudad 3 Ciudad 4
Planta 1 (5) 3 (3)4 NO1 2
Planta 2 NO1 (2)5 (7)3 7
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).
Comenzamos seleccionando una celda vacia, que se aadir a las de la base de
forma que no puedan formarse ciclos con esta celda aadida y las 5 celdas no nulas
de la solucin anterior. Las posiciones prohibidas, aquellas que permiten formar
ciclos, estn indicadas (con NO) en la tabla anterior. Elegimos entre las posiciones
posibles la (3,2), que es una de las ms baratas, y le daremos el valor , y hallamos
los costes reducidos como anteriormente.
142 TEMA 5. EL PROBLEMA DE TRANSPORTE
Ciudad 1 Ciudad 2 Ciudad 3 Ciudad 4 u
i
Planta 1
(5)
3
(3)
4

1
1
4*
+ 2
0
Planta 2
3
1
(2)
5
(7)
3
0
7
1
Planta 3
2
2
()
+ 1

2
1
(6)
3
3
v
j
3 4 2 6
El costo reducido ms positivo es la posicin (1,4). La solucin a la que corre-
sponde menor el valor ms pequeo entre las celdas marcadas con el signo menos
es 3, en la posicin (1,2). La nueva solucin est en la siguiente tabla donde tam-
bin se indican los clculos realizados en el ciclo correspondiente en el algoritmo de
transporte.
Ciudad 1 Ciudad 2 Ciudad 3 Ciudad 4 u
i
Planta 1
(5)
3

4
4
3
1
(3)
+ 2
0
Planta 2
*7
+ 1

(2)
5

(7)
3
0
7
5
Planta 3
2
2
( + 3)
+ 1

2
1
(3)
3
1
v
j
3 0 2 2
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:
Ciudad 1 Ciudad 2 Ciudad 3 Ciudad 4 u
i
Planta 1
3
3

4
4
4
1
5
+ 2
0
Planta 2
2
+ 1

-7
5
7
3

-7
7
-2
Planta 3
2
2
+ 5
1
*5
+ 1

(1)
3
-1
v
j
3 0 5 2
El pivote resulta en la celda (3,3). Esta variable entrar en la base saliendo la
de la posicin (3,4) con menor valor (1) marcado con signo menos.
5.9. OTRAS VARIACIONES DEL PROBLEMA DE TRANSPORTE 143
Ciudad 1 Ciudad 2 Ciudad 3 Ciudad 4 u
i
Planta 1
2
3

1
4
*4
+ 1

6
+ 2
0
Planta 2
3
+ 1

-2
5
6
3

-7
7
-2
Planta 3
-3
2
+ 5
1
1
1
-5
3
-4
v
j
3 5 5 2
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 u
i
Planta 1
-4
3
3
4
2
1
6
2
0
Planta 2
5
1
-2
5
4
3
-3
7
2
Planta 3
-3
2
+ 5
1
1
1
-1
3
0
v
j
-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.
5.9 Otras variaciones del problema de transporte
Si el problema de que hemos de resolver fuera similar al de transporte, pero de
maximizacin, se podra resolver con el algoritmo anterior sin ms que cambiar
los signos de los costes unitarios en la funcin objetivo, lo que lo transformara
en un problema de minimizacin. No obstante, y para manejar costes unitarios no
negativos se suele sustituir cada coste por la diferencia entre el mayor valor de ellos y
su propio valor, aplicando despus el algoritmo minimizante del epgrafe 5.7. De esta
forma los precios unitarios seran no negativos. Esta transformacin esta permitida
debido a que se cumple el siguiente teorema:
Teorema 11 En un problema de transporte se puede sumar o restar cualquier cons-
tante a los costes sin que vare la solucin ptima, aunque lo que s vara es el valor
del objetivo.
144 TEMA 5. EL PROBLEMA DE TRANSPORTE
Demostracin:
min
_

i,j
(k c
ij
) x
ij
_
min
_

i,j
_
kx
ij
) +

i,j
(c
ij
_
x
ij
_

min
_
k

i,j
(x
ij
) +

i,j
(c
ij
)x
ij
_
min
_
constante +

i,j
(c
ij
)x
ij
_
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 c
ij
) x
ij
es equivalente al problema de maximizar z

=

i,j
c
ij
x
ij
.
Ambos problemas dan lugar a la misma solucin ptima para las variables x
ij
. No
obstante la relacin entre las respectivas funciones objetivos es:
z =
_
k

i,j
(x
ij
) +

i,j
(c
ij
)x
ij
_
= k

i,j
(x
ij
)+

i,j
(c
ij
)x
ij
= k

i,j
(x
ij
)
z

. Por lo tanto el problema de maximizacin tiene un valor del objetivo


z

= k

i,j
(x
ij
) z
Otra variacin de este problema se presenta cuando alguna de las rutas no tenga
asignado ujo, 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.
5.10 El problema de transbordo
El problema de transbordo es un problema de transporte modicado, donde algunos
nodos pueden ser simultneamente lugares de demanda de mercanca y orgenes para
otros destinos.
Ejemplo 61 En el grco de la gura 5.2 se muestra un ejemplo en el que los nodos
A y B son orgenes y los nodos 1 y 2 destinos con las disponibilidades y demandas que
se indican. Consideraremos adems que B es a su vez un lugar de transbordo y que
el gasto por unidad transportada desde A hasta B es 2 u.m. Tambin consideraremos
que el destino 1 es un punto de transbordo y que el gasto de transporte desde 1 a 2
es tambin 2 u.m.
El problema se resuelve partiendo de la tabla siguiente:
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
Figura 5.2: Ejemplo de problema de transbordo.
Esta tabla se ha construido cumpliendo las siguientes normas:
a) Se aade como origen el destino 1 que acta como punto de transbordo y que por
tanto puede funcionar como origen. De igual forma se aade como destino B que es
un nodo de transbordo.
b) Las disponibilidades de los puntos de transbordo, si actan como orgenes, son
las que tienen de por s, ms la cantidad total que se transporta (35+55 = 40+50 =
90). Las demandas de los puntos de transbordo cuando actan como destinos son las
cantidades demandadas realmente, ms la cantidad total que hay que transportar.
c) Si algunos pasos no estuvieran permitidos, se pone en la casilla correspondiente
un costo grande en relacin con los dems. Se supone que el transporte de un nodo
a s mismo tiene coste nulo, si no se indica otra cosa.
Resolviendo el problema de transporte correspondiente a esta tabla se obtiene la
solucin ptima siguiente.
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
5.11 El problema de asignacin
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.
tarea 1 tarea 2 tarea 3 tarea 4
mquina 1 11 1 2 3
mquina 2 3 12 4 5
mquina 3 8 8 1 9
mquina 4 3 4 4 10
Asignar una tarea a cada mquina de modo que la suma de los tiempos trabajados
por las cuatro mquinas sea mnimo.
Este problema se puede resolver por el algoritmo de transporte, ya que las
mquinas pueden ser interpretadas como orgenes con oferta 1 y las tareas como
destinos con una demanda de 1, puesto que cada maquina slo hace una tarea y
todas las tareas han de ser realizadas.
Las soluciones de este problema slo pueden tomar los valores 0 1. Un 1 en
la celda (i, j) signica que al individuo i se asigna la tarea j. Aunque el problema
puede resolverse por el algoritmo de transporte, se suele presentar un alto grado
de degeneracin. Para el problema de asignacin es ms eciente usar el mtodo
Hngaro, que exponemos a continuacin.
5.11.1 El algoritmo Hngaro (Forma minimizante)
Partiendo de la matriz cuadrada de los tiempos se realizan los pasos siguientes:
Paso 1: Encontrar el mnimo de cada la. Construir una nueva matriz restando de
cada la 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 las
o columnas con menor nmero de ceros se recuadra un cero en cada la y
columna y se tachan los dems ceros de estas las o columnas. Se repite este
proceso hasta que no queden ceros sin tachar o recuadrar.
Paso 3: Si el nmero de ceros recuadrados es igual que el nmero de las (tambin
ser igual que el nmero de columnas), las posiciones de los ceros recuadrados
marcan la solucin ptima. Si no es as, continuar con el Paso 4.
5.11. EL PROBLEMA DE ASIGNACIN 147
Paso 4: Tachar con el menor nmero de lneas (las o columnas) todos los ceros de
la matriz.
Para conseguirlo se puede seguir el siguiente procedimiento:
a) Se marcan la las que no tengan ningn cero recuadrado.
b) Se marcan las columnas que tengan algn cero tachado en las las marcadas.
c) Considerando nicamente las columnas marcadas se marcan las las que ten-
gan algn cero recuadrado en estas columnas marcadas.
d) Se repite b y c hasta que no se puedan marcar ms las o columnas.
e) Se tachan las las no marcadas y las columnas marcadas.
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
5.11.2 Ejemplo de aplicacin del algoritmo Hngaro
Vamos a aplicar este algoritmo al problema del ejemplo 62.
Se usarn los siguientes smbolos:
0 x = cero tachado, 0 = cero recuadrado,
xxx = la o columna tachada, *** = la o columna marcada.
Paso 1:
11 1 2 3 1
3 12 4 5 3
8 8 1 9 1
3 4 4 10 3
min

10 0 1 2
0 9 1 2
7 7 0 8
0 1 1 7
10 0 1 2
0 9 1 2
7 7 0 8
0 1 1 7
0 0 0 2 min

10 0 1 0
0 9 1 0
7 7 0 6
0 1 1 5
Esta ltima es la matriz de costes reducidos.
Paso 2 (se indica el orden en que se han seleccionado los ceros):
148 TEMA 5. EL PROBLEMA DE TRANSPORTE
10 0 3
o
1 0x
0x 9 1 0 4
o
7 7 0 1
o
6
0 2
o
1 1 5
Como hay 4 ceros recuadrados, sus posiciones marcan la solucin ptima. En
este caso consiste en que la mquina 1 hace la tarea 2, la mquina 2 la tarea 4, la 3
la tarea 3 y la 4 la tarea 1. El tiempo total requerido ser 1 + 5 + 1 + 3 = 10.
Con el objeto de ilustrar el resto del algoritmo lo aplicamos a la matriz del
siguiente ejemplo.
Ejemplo 63 Hallar la solucin ptima en el problema de asignacin cuya matriz
de costes reducidos es:
18 0 6 0
0 20 8 2
8 10 0 8
0 4 8 12
Como ya tenemos realizado el paso 1 comenzamos el siguiente.
Paso 2
18 0 2
o
6 0 x
0 3
o
20 8 2
8 10 0 1
o
8
0 x 4 8 12
Como hay menos ceros recuadrados que las (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 las y columnas.
18 0 6 0 x
0 20 8 2 ***3
o
8 10 0 8
0 x 4 6 12 ***1
o
***2
o
Ya no pueden marcarse ms las ni ms columnas.
Paso 4e ( los elementos marcados con xx son los que estn tachados dos veces)
5.12. PROBLEMA DE EMPAREJAMIENTO 149
1 8 xx 0 6 0 x xxx
0 20 8 2
8 xx 1 0 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 4
o
6 0 x
0 x 18 6 0 3
o
10 10 0 1
o
8
0 2
o
2 6 10
Ahora hay 4 ceros recuadrados que marcan una solucin ptima.
5.12 Problema de emparejamiento
Un problema de este tipo podra ser el siguiente. Disponemos de m individuos
que deben realizar n tareas. Se supone que cada individuo puede realizar algunas
de las tareas. Se pretende asignar a cada individuo una nica tarea de modo que
se realicen el mayor nmero posible de estas. Este problema se puede interpretar
como un problema de transporte. Si se supone que cada individuo slo va a realizar
una tarea, las demandas son todas 1 y las disponibilidades 1. Los costos de cada
celda son 1 0. Un 1 signica que el individuo puede hacer esa tarea y un 0 que no
puede hacerla. El problema se transforma en uno de asignacin aadiendo individuos
cticios (que pueden hacer todas las tareas), o tareas cticias (que puede hacerlas
cualquier individuo).
Ejemplo 64 Asignar 6 tareas a 5 individuos de modo que se realice el mayor
nmero posible de tareas. Las tareas que puede realizar cada individuo estn mar-
150 TEMA 5. EL PROBLEMA DE TRANSPORTE
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. cticio 1 1 1 1 1 1 1
Demandas 1 1 1 1 1 1
Para las demandas y disponibilidades se debe tomar el valor 1. Esta es la matriz
de los costos (c
ij
= 1 si el individuo i puede realizar la tarea j y es 0 en caso
contrario). Realizar el mayor nmero de tareas es equivalente a maximizar

i,j
c
ij
x
ij
.
x
ij
= 1 si el individuo i realiza la tarea Tj, x
ij
= 0 si el individuo i no realiza la
tarea Tj,
En este caso el problema de transporte asociado es de maximizacin, que puede
convertirse en uno de minimizacin intercambiando los ceros de los costes con 1, ya
que minimizar

i,j
(1 c
ij
) x
ij
, es equivalente a minimizar

i,j
(c
ij
) x
ij
o a maximi-
zar

i,j
c
ij
x
ij
que es lo que se pretende en este caso. Esta propiedad es una aplicacin
inmediata del teorema 11 cuyo enunciado aparece en la pgina 143.
Por lo tanto, para resolver este problema usando el algoritmo Hngaro, cam-
biamos los 1 por ceros y recprocamente, teniendo como matriz de costo reducido
la siguiente, donde se ha indicado los ceros recuadrados (en el orden indicado) que
conducen a la solucin ptima:
0 2
o
1 1 0 1 1
0 0 3
o
1 1 1 1
1 1 1 0 1
o
1 1
1 0 0 4
o
1 1 0
1 1 1 0 0 5
o
1
0 0 0 0 0 0 6
o
As que el individuo 1 hace la tarea 1, el individuo 2 hace la tarea 2, el individuo
3 hace la tarea 4, el individuo 4 hace la tarea 3, el individuo 5 hace la tarea 5. La
tarea 6 no la realiza ninguno de los 5 individuos, ya que est asignada al individuo
cticio.
5.13 Problema de planicacin de la produccin
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 justicado
por el gasto de almacenaje, posible deterioro del producto, producto obsoleto o en
desuso, etc.
Consideraremos el ejemplo siguiente:
Ejemplo 65 Un fabricante desea planicar su produccin para los cuatro meses
siguientes. La produccin mxima, la demanda y el gasto de produccin por unidad
en cada mes est resumido en la siguiente tabla.
Mes Gasto
Produccin
Mxima
Demanda
1
o
100 2000 900
2
o
100 2500 2000
3
o
200 4000 5000
4
o
300 2500 2000
Adems cada unidad no vendida en un mes tiene un encarecimiento de 100
unidades por cada mes de almacenamiento. Elaborar un plan ptimo de produccin.
En la tabla de transporte siguiente se consideran los periodos de tiempo como
orgenes y destinos. Los orgenes tienen como disponibilidad la produccin mxima
u oferta del periodo y los destinos una demanda que es la que corresponde a cada
periodo. Se han dividido todos los valores del problema por 100 para simplicar
la escritura. En cada celda (i, j) est indicado el costo de una unidad de producto
fabricado en el mes i y vendido en el mes j. No puede venderse un producto antes de
ser fabricado, por este motivo las celdas correspondientes tienen asignado un coste
alto (M), para que estas casillas no aparezcan en la solucin, ya que el problema es
de minimizacin. Se ha aadido una demanda cticia para conseguir un problema
de transporte equilibrado.
mes 1 mes 2 mes 3 mes 4 mes. Fic. Disponibilidades
mes 1 1 2 3 4 0 20
mes 2 M 1 2 3 0 25
mes 3 M M 2 3 0 40
mes 4 M M M 3 0 25
Demandas 9 20 50 20 11
Una solucin inicial obtenida por el mtodo de Vogel es:
mes 1 mes 2 mes 3 mes 4 mes. Fic.
mes 1 9 5 6 20
mes 2 20 5 25
mes 3 40 40
mes 4 14 11 25
9 20 50 20 11
152 TEMA 5. EL PROBLEMA DE TRANSPORTE
Aplicando el algoritmo de transporte, se obtiene la tabla siguiente:
mes 1 mes 2 mes 3 mes 4 mes. Fic. u
i
mes 1
(9)
- 1 2
(5)
+ 3
(6)
- 4

1*
+ 0
0
mes 2
-M
M
(20)
1
(5)
- 2 + 3 0
-1
mes 3
-M
+ M
1-M
M
(40)
2 - 3 0
-1
mes 4
-M
M
1-M
M
2-M
M
(14)
+ 3

(11)
- 0
-1
v
j
1 2 3 4 1
Tomo como pivote la posicin (1,5) que es la nica con coste reducido positivo.
mes 1 mes 2 mes 3 mes 4 mes. Fic.
mes 1 9 5 6 20
mes 2 20 5 25
mes 3 40 40
mes 4 20 5 25
9 20 50 20 11
Los costos reducidos correspondientes a esta solucin, as como los valores de
u
i
, v
j
se dan en la siguiente tabla. Se han dejado en blanco las casillas correspon-
dientes a la presente base (como se sabe los costos reducidos de las variables bsicas
son nulos).
mes 1 mes 2 mes 3 mes 4 mes. Fic. u
i
mes 1 0 1 0
mes 2 M 1 1 1
mes 3 M 1 M 1 1 1
mes 4 1 M 2 M 3 M 0
v
j
1 2 3 3 0
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
mes 1 mes 2 mes 3 mes 4 mes. Fic.
mes 1 900 500 600 2000
mes 2 2000 500 2500
mes 3 4000 4000
mes 4 2000 500 2500
900 2000 5000 2000 1100
Un plan de produccin ptimo, aunque no el nico, consiste en:
Primer mes : fabricar 1400 unidades (las 600 unidades correspondientes a la de-
manda cticia 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 cticia).
El coste de produccin y almacenamiento con esta solucin es:
900 100 + 2000 100 + 4000 200 + 2000 300 + 500 200 + 500 300 =
= 1940 000 u.m.
Si introducimos en la base la variable de la posicin (1, 2) se obtiene la solucin
alternativa:
mes 1 mes 2 mes 3 mes 4 mes. Fic.
mes 1 900 500 600 2000
mes 2 1500 1000 2500
mes 3 4000 4000
mes 4 2000 500 2500
900 2000 5000 2000 1100
cuyo coste es 900100+500200+1500100+1000200+4000200+2000300 =
1940 000 u.m. Como era de esperar, este coste es idntico al obtenido con la primera
solucin.
154 TEMA 5. EL PROBLEMA DE TRANSPORTE
Tema 6
Modelos de Redes
6.1 Redes. Conceptos bsicos
Grafo: Llamaremos grafo a un par {V, A} donde V es un conjunto de elementos
llamados vrtices o nodos y A V V otro conjunto cuyos elementos son los
arcos. Si (a, b) es un elemento de A, a se llama origen y b extremo. En la gura
6.1 est representado un grafo cuyos vrtices son V = {0, 1, 2, n} y cuyos arcos son
A = {(0, 1)(0, 2)(1, 2)(2, 1)(1, n)(2, n)} .A veces se describe un Grafo por medio de
una matriz de incidencia que es una matriz con tantas columnas como arcos y
tantas las como elementos.
As el mismo grafo de la gura 6.1 puede tambin venir expresado por medio de
esta matriz de incidencia:
0
n
2
1
Figura 6.1: Ejemplo de un grafo.
155
156 TEMA 6. MODELOS DE REDES
(0,1) (0,2) (1,2) (2,1) (1,n) (2,n)
0 1 1 0 0 0 0
1 -1 0 1 -1 1 0
2 0 -1 -1 1 0 1
n 0 0 0 0 -1 -1
Cada celda se marca con 1 si el vrtice de su la es el origen del arco de su
columna y con -1 si es el extremo. Se rellenan con ceros el resto de las celdas.
Otro tipo de matriz de incidencia ms simple se construye de la forma siguiente:
si existe el arco (i, j) hay un 1 en el elemento (i, j) de la matriz. En caso contrario
hay un 0
0 1 2 n
0 1 1
1 1 1
2 1 1
n
Una red es un grafo cuyos arcos tienen asociada alguna medida.
Red bilateral: es una red que admite ambas orientaciones en los arcos. En este
caso los arcos se llaman aristas. Una red sin aristas (no admite ambas orientaciones
en los arcos) se llama Red Dirigida. Una red con aristas puede transformarse en
una red dirigida por medio de la transformacin indicada en la gura 6.2.
A
B
B
B
A A
3
0
0
3 3
Figura 6.2: Diagrama de transformacin en red dirigida.
Un vrtice sin arco se llama aislado.
Un lazo es un arco cuyo origen y extremo coinciden.
6.2. CAMINOS DE LONGITUD MNIMA 157
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.
6.2 Caminos de longitud mnima
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.
Ejemplo 66 Una compaa quiere enviar un pedido desde la planta de produccin
a un cliente. Los nodos son cruces por donde pueden circular sus camiones y los
nmeros de los arcos el coste de enviar cada camin por el trayecto representado
por este arco. Cul es el camino ms barato? La red asociada es la que aparece
en la gura 6.3.El problema de la ruta mnima puede verse como un problema de
1
3
5
2
4
6
20
10
15 10
15
15
10
Planta
Cliente
Figura 6.3: Red de distribucin del ejemplo.
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:
min 20x
12
+ 15x
13
+ 15x
24
+ 10x
25
+ 15x
35
+ 10x
46
+ 10x
56
s.a.
_

_
x
12
+x
13
= 1 (Slo un arco del camino parte del vrtice ORIGEN)
x
46
+x
56
= 1 (Slo un arco del camino llega al vrtice FINAL)
x
12
(x
24
+x
25
) = 0 (Si un arco del camino llega al nodo 2 ha de salir de l)
x
13
x
35
= 0 (Idem nodo 3)
x
24
x
46
= 0 (Idem nodo 4)
(x
25
+x
35
) x
56
= 0 (Idem nodo 5)
x
ij
= 0, 1
El camino mnimo esta formado por los arcos cuyo valor en la solucin sea 1. Es
posible que el problema tenga varias soluciones.
6.3 Algoritmos de ordenacin y de etiquetacin
El algoritmo de etiquetacin es un algoritmo especco para calcular el camino m-
nimo. Slo es vlido para redes dirigidas que no contengan ciclos.
Paso 1: Numerar los nodos en orden creciente 1, 2, 3,...., n. Sea 1 el origen y n
el destino. Se debe cumplir que si un arco lleva la orientacin (i, j) entonces
i < j. Para ordenar los nodos podemos emplear el siguiente algoritmo de
ordenacin:
a ) Partir del modelo ms simple de matriz de incidencia.
b) Aadir una columna en la que anotamos el nmero de unos de la la
correspondiente, anotando en su parte inferior el nodo o nodos que tienen
un cero en esta columna.
c) Se tachan en la matriz de incidencia los unos de las columnas cuyos nodos
se acaban de anotar y las las de los nodos anotados. Si todos los vrtices
han sido ya anotados ir al Paso 1.d. En caso contrario ir al Paso 1.b.
6.3. ALGORITMOS DE ORDENACIN Y DE ETIQUETACIN 159
d) Para numerar los nodos comenzamos numerando el ltimo que se haya
anotado en la ltima la, continuaremos numerando los restantes en orden
inverso al que han sido anotados.
Paso 2: Poner una etiqueta a cada vrtice E
i
por orden ascendente de numeracin
del modo siguiente:
E
1
= 0, E
j
= min(E
i
+d
ij
, i = 1, 2, ..j 1)
siendo a
ij
la longitud del arco que une el nodo i con el nodo j, considerando
para j slo los arcos directamente unidos al nodo i.
Paso 3: E
n
es la longitud del camino mnimo. El camino se traza hacia atrs a
partir del nodo n. Los arcos que lo forman son los que cumplen la frmula de
etiquetacin : E
j
= E
i
+ d
ij
. Si se desea hallar caminos de longitud mxima
(que slo tiene sentido en redes acclicas) se emplea el algoritmo anterior sin
ms que modicar en el paso 2 min por max, es decir:
E
j
= max(E
i
+d
ij
, i = 1, 2, ..j 1).
Aplicamos el algoritmo de Ordenacin al siguiente ejemplo
Ejemplo 67 Ordenar el grafo de la gura 6.4.

A
B
I
E
C
F
D
H
G
J
Figura 6.4: Ejemplo de algoritmo de ordenacin.
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 modicaciones. La
la tachada se marca con x:
160 TEMA 6. MODELOS DE REDES
A B C D E F G H I J
n
o
d e
u n o s
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
F
G
I
D E B C A
1 0 9
6
7
8
5 4 3 2 1
Los nodos F, G, I que estn en la misma casilla pueden numerarse en distinto
orden, permutando los nmeros 6, 7, 8.
Por lo tanto una ordenacin posible es la de la gura 6.5.

1
3
8
4
2
6
5
9
7
10
Figura 6.5: Ejemplo de grafo ordenado.
Ejemplo 68 Hallar el camino mnimo desde el nodo 1 al 10 aplicando el algoritmo
de etiquetacin. La red, incluyendo las medidas de los arcos, est representada en
la gura 6.6.
Las etiquetas resultantes de aplicar el algoritmo estn indicadas en cada nodo.
6.4. ALGORITMO DE DIJKSTRA 161

0
8
13
4
3
4 8 14
11
10
1
3
8
4
2
6
5
9
7
10
8
3
5
6
2
4 7
6
5
2
4
2
4
3
1
1
2
1
Figura 6.6: Ejemplo de Algoritmo de Etiquetacin.
La longitud del camino mnimo es 11 ( la etiqueta del vrtice 10 ).
El camino mnimo es: 1 2 4 9 10.
6.4 Algoritmo de Dijkstra
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
Sea j el vrtice que ha recibido etiqueta permanente en el paso anterior. La
nueva etiqueta temporal de los vrtices que no la tengan permanente, es el
mnimo entre la anterior etiqueta temporal y la suma de la etiqueta permanente
del vrtice j ms la distancia directa del vrtice en consideracin al vrtice j,
si existe arco directo. Si no es as, se mantiene la anterior.
Paso 5
Hacer permanente la mnima de todas las etiquetas temporales. Si hay varias
iguales elegir una de ellas arbitrariamente. Si la ltima etiqueta permanente
es la n, parar. En otro caso, volver al paso 4.
La etiqueta de n es la distancia mnima. Para localizar el camino se parte del
vrtice n y se resta su etiqueta de las distancia de los arcos que conuyen en
n. Cuando esta diferencia coincide con la etiqueta anterior, ste es el vrtice
precedente en el camino mnimo. Aplicar esta condicin sucesivamente hasta
alcanzar el origen.
Ejemplo 69 Dada la red representada en la gura 6.7. Hallar el camino mnimo
desde el nodo 0 al 5 y la longitud de este camino.
44
0 1 2 3 4 5
7 7 7 7 7
12 12 12 12
21 21 21
31
31
Figura 6.7: Ejemplo de camino mnimo.
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
Como podemos observar, 31 es la distancia mnima entre los nodos 0 y 5
A continuacin esquematizamos los pasos que hay que seguir para obtener el
camino mnimo. En este caso el problema tiene varias soluciones.
Solucin 1: vrtice 5 (31 7 = 24), vrtice 4, (24 12 = 12), vrtice 2, (12 12 = 0) ,
vrtice 0
Camino: 0 2 4 5. Longitud: 12 + 12 + 7 = 31.
Solucin 2: vrtice 5 (31 12 = 19) , vrtice 3, (19 7 = 12) ,vrtice 2, (12 12 = 0) ,
vrtice 0
Camino: 0 2 3 5. Longitud: 12 + 12 + 7 = 31.
Solucin 3: vrtice 5 (31 12 = 19) , vrtice 3, (19 12 = 7) , vrtice 1, (7 7 = 0) ,
vrtice 0
Camino: 0 1 3 5. Longitud: 12 + 12 + 7 = 31.
6.5 Problema del ujo mximo
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 gura 6.8, deseamos calcular el ujo mximo que puede
enviarse de F a S.
Para formular este problema como un problema de programacin lineal, tomamos
como variables el ujo que debe pasar por cada arco. Creamos el arco cticio a =
(S, F), de capacidad ilimitada. Llamamos x
n0
el ujo que pasa por a. Queremos
maximizar la cantidad de ujo que pase por el arco cticio a.
164 TEMA 6. MODELOS DE REDES
F S
1
3
2
2
4
1
2
3
3
x
n0
Figura 6.8: Ejemplo de ujo mximo.
max z = x
n0
s.a. :
_
0 x
ij
a
ij
(El ujo de un arco no puede exceder su capacidad)

i,
x
il

j
x
lj
= 0. l (El ujo que entra en cada nodo es igual al que sale)
En nuestro problema el planteamiento sera
max z = x
no
s.a.:
_

_
x
01
2, x
02
3, x
13
4, x
12
3, x
2n
2, x
3n
1
x
no
(x
01
+x
02
) = 0
x
01
(x
13
+x
12
) = 0
x
12
+x
o2
x
2n
= 0
x
13
x
3n
= 0
x
3n
+x
2n
x
no
= 0
x
ij
0
Una solucin ptima es x
01
= 2, x
13
= 1, x
12
= 1, x
02
= 1, x
3n
= 1, x
2n
= 2,
x
n0
= 3, as que el ujo mximo es z = 3. El problema admite otras soluciones
ptimas.
El problema de emparejamiento puede interpretarse como un problema de ujo
mximo. Veamos cmo se puede conseguir un problema de ujo mximo equivalente
al problema del ejemplo 5.12 de la pgina 149.
Ejemplo 71 Asignar 6 tareas a 5 individuos de modo que se realice el mayor
nmero posible de tareas. Las tareas que puede realizar cada individuo estn mar-
6.6. ALGORITMO DE FORD-FULKERSON 165
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. cticio 1 1 1 1 1 1
El grafo correspondiente es el de la gura 6.9.Todos los arcos tienen 1 de ca-
1
2
4
3
T1
5
T2
T3
T4
T6
T5
S
F
Figura 6.9: Grafo del problema de emparejamiento.
pacidad. El problema consiste en enviar la mayor cantidad de ujo de la fuente al
sumidero.
6.6 Algoritmo de Ford-Fulkerson
6.6.1 Flujo de un corte
Si consideramos una particin (X, X

) en el conjunto de los vrtices de una red, de


modo que la fuente pertenece a X y el sumidero a X

, llamamos corte al conjunto


de los arcos que unen un vrtice de X con uno de X

.
Se dene ujo de X a X

, f(X, X

), como la suma de los ujos de los arcos que


tienen su origen en X y su extremo en X

.
Se dene capacidad del corte, q(X, X

), como la suma de las capacidades de


los arcos que tienen su origen en X y su extremo en X

.
166 TEMA 6. MODELOS DE REDES
Se cumplen las propiedades siguientes:
Teorema 12 El ujo desde la fuente al sumidero para cualquier solucin factible es
menor o igual que la capacidad de cualquier corte.
Teorema 13 (de Ford Fulkerson) El ujo mximo coincide con la capacidad del
corte que tenga menor capacidad.
6.6.2 Algoritmo de Ford-Fulkerson
Dada una solucin factible del problema de ujo mximo se denen 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 ujo es positivo (por lo tanto
pueden tomar valores ms bajos).
El Algoritmo de Ford-Fulkerson se usa para calcular el ujo mximo que puede
circular por una red. Consiste en:
Paso 0
Obtener una solucin factible. Se puede comenzar poniendo todos los ujos
x
ij
=0. Es preferible comenzar con una solucin mejor que se puede conseguir
recorriendo caminos y asignando el ujo 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 (a
ij
x
ij
) en que el ujo puede ser aumentado y
para los arcos inversos la cantidad en que puede disminuir que es x
ij
. Sea k el
6.6. ALGORITMO DE FORD-FULKERSON 167
mnimo de todas estas cantidades asignadas a los arcos de la cadena. Sumamos
k al ujo de los arcos directos y se lo restamos al ujo de los arcos inversos
teniendo una nueva solucin factible que mejora la anterior. Volver al paso 1
con esta nueva solucin.
Resolvemos ahora el ejemplo de la gura siguiente con este algoritmo.
Partimos de una solucin en que todos los ujos son nulos. En el grafo vienen
marcados los arcos A y D, y se han puesto las etiquetas que marcan el camino
F 1 3 S.

Flujo = 0
A,2,0
A,4,0
A,1,0
A,3,0
A,3,0
A,2,0
F S
1
2
3 [+F] [+1]
[+0] [+3]
En este camino todos los arcos pueden aumentarse en 1. Por tanto, obtenemos
la solucin de la gura mejorada con ujo 1.

Flujo = 1
A,D,2,1
A,D,4,1
D,1,1
A,3,0
A,3,0
A,2,0
F S
1
2
3 [+F] [+1]
[+0] [+3]
168 TEMA 6. MODELOS DE REDES
Ahora se procede a marcar el camino F 2 S. Por este camino se pueden
enviar 2 unidades como mximo. Por lo tanto el ujo permitido que se puede
aumentar en este camino es de 2 unidades y como consecuencia el ujo total es
ahora 3.

Flujo = 1+2=3
A,D,2,1
A,D,4,1
D,1,1
A,D,3,2
A,3,0
D,2,2
F S
1
2
3
[+F]
[+0] [+2]
Si empleamos de nuevo el algoritmo veremos que ya no se puede alcanzar el sumidero,
puesto que el corte X = {F, 1, 2, 3} , X

= {S} tiene una capacidad 3, as que el


ujo no puede ser superior a 3. Tenemos la solucin ptima indicada en la gura
anterior.
Hacemos ahora el problema de otra forma para mostrar un ejemplo del uso de
arcos inversos. Partimos de la solucin de la gura:

Flujo = 2
D,2,2
A,4,0
A,1,0
A,3,0
A,D,3,2
D,2,2
F S
1
2
3
[+1]
[+0] [+2]
[+F]
Marcamos ahora la cadena F 2 1 3 S.
6.7. CPM Y PERT 169

Flujo = 2
D,2,2
A,4,0
A,1,0
A,3,0
A,D,3,2
D,2,2
F S
1
2
3
[+F]
[+0] [+3]
[-2] [+1]
En la cadena marcada podemos aadir 1 en los arcos directos y restar 1 en los
inversos. Una vez modicados los ujos de la cadena marcada con las etiquetas
obtenemos una solucin mejorada que es otra solucin ptima:

Flujo = 2+1=3
D,2,2
A,D,4,1
D,1,1
A,D,3,1
A,D,3,1
D,2,2
F S
1
2
3
[+F]
[+0] [+3]
[-2] [+1]
6.7 CPM y PERT
Los modelos de redes pueden servir para esquematizar y ayudar en la planicacin de
proyectos complejos que requieren la realizacin de un gran nmero de actividades,
y que se caracterizan porque antes de realizar algunas de ellas tienen que haber
sido realizadas otras (que llamaremos actividades precedentes o predecesoras). Si
170 TEMA 6. MODELOS DE REDES
se conoce con certeza la duracin de estas actividades se usa el procedimiento CPM
(Critical Path Method). Si la duracin de ejecucin de las actividades no es conocida
con certeza, el mtodo PERT (Program Evaluation and Review Technique) nos dar
la probabilidad de que el proyecto sea realizado en un cierto tiempo. Ambos mtodos
fueron empleados en 1950 en relacin con el desarrollo de los misiles Polaris. Gracias
a estos mtodos, el proyecto se concluy dos aos antes de lo que en principio se
haba estimado.
Para aplicar uno de estos mtodos se requiere conocer la lista de las actividades
que forman el proyecto. Un proyecto est terminado cuando lo estn todas sus
actividades. Para cada actividad hay un conjunto de actividades (sus predecesoras)
que deben ser completadas antes que la actividad considerada comience. Las redes
se utilizan para representar la relacin de precedencia entre las actividades. En este
caso, los arcos representan las actividades. Los nodos indican el comienzo de las
actividades que tienen en l su origen y la terminacin de las actividades que lo
tienen por extremo.
Las redes de proyectos han de cumplir las normas siguientes:
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 nal (n) que representa la terminacin del proyecto.
3. La numeracin de los nodos debe cumplir la condicin de que el nodo que
representa el n de una actividad debe ser nombrado con un nmero mayor
que el que representa su inicio.
4. Cada actividad estar representada en la red por un solo arco.
5. Dos nodos no pueden ser conectados por ms de un arco.
Para respetar las reglas 4 y 5 a veces es necesario utilizar actividades cticias
con duracin 0.
Un ejemplo de aplicacin de estas normas:
Si las actividades A y B comienzan al mismo tiempo y ambas preceden a C no
se representa en la forma:
a
a
b
c
sino de la forma:
6.7. CPM Y PERT 171
a
b
c
artificial
para cumplir la regla 5.
Ejemplo 72 (C.P.M) Para un cierto producto se requieren dos componentes y un
cierto nmero de trabajadores y materiales. Uno de estos componentes requiere un
cierto tiempo de secado antes de ser montado para componer el producto nal. En
la siguiente relacin estn indicadas las actividades, su duracin y las actividades
que la preceden inmediatamente.
Actividades Predecesoras Duracin
a = contratar trabajadores - 24
b = conseguir el material - 36
c = producir el componente 1 a,b 32
d = producir el componente 2 a,b 28
e = tiempo de secado del componente 2 d 40
f = ensamblar ambos componentes c,e 48
Una representacin del problema se da en la siguiente red.
1
2 4
3 5 6
36
0
28
24
40
32 48
b
a
art.
c
e d
f
Red del proyecto.
6.7.1 Algoritmo CPM
Para el algoritmo de CPM denimos para cada actividad los tiempos siguientes:
PC = lo ms pronto que puede comenzar.
PT = lo ms pronto que puede terminarse.
TC = lo ms tarde que puede comenzar sin que se retrase el n del proyecto.
172 TEMA 6. MODELOS DE REDES
TT = lo ms tarde que puede terminar sin que se retrase el n del proyecto.
El algoritmo consta de los pasos siguientes:
Paso 1: Comenzando con las actividades que parten del origen tomamos PC = 0 y
PT = su duraci on.
Paso 2: Proceder del modo siguiente con las dems actividades. Su valor PC es el mayor
PT de las actividades precedentes. Su valor PT = PC+duraci on de la actividad.
Cuando todas las actividades tengan PC y PT ir al paso 3.
Paso 3: Comenzar con las actividades que terminen en el n del proyecto (de mayor
PT). TT es el mayor PT obtenido en el paso anterior y TC = TT su
duraci on.
Paso 4: Proceder de la siguiente forma con las actividades anteriores siguiendo un orden
decreciente. Su valor TT es el menor TC de las actividades que le siguen. Su
valor TC = TT. Cuando todas las actividades estn etiquetadas ir al paso
5.
Paso 5: Las actividades con PT = TT 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 = TT PT),
y pueden adelantarse o retrasarse en el valor de la holgura sin afectar al tiempo
global de ejecucin del proyecto.
Resolucin del ejemplo 72 usando el presente algoritmo:
Actividades Pred. Dur PC PT TT TC Holg.
a = contratar trabajadores - 24 0 24 36 12 12
b = conseguir el material - 36 0 36 36 0 0
articial b 0 36 36 36 36 0
c = producir el componente 1 a, art 32 36 68 104 72 36
d = producir el componente 2 a,art 28 36 64 64 36 0
e = control calidad componente 2 d 40 64 104 104 64 0
f = ensamblar componentes c,e 48 104 152 152 104 0
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 n del proyecto (nodo 6).
Este problema puede tambin resolverse por programacin lineal. Sea t
j
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
actividades que terminan en el nodo j) y t
1
la hora en que se comienza a ejecutar el
proyecto. El problema se planteara como:
min Z = t
6
t
1
s.a :
_
t
3
t
1
24, t
2
t
1
36, t
5
t
3
32, t
4
t
3
28
t
5
t
4
40, t
6
t
5
48, t
3
t
2
0
Todas las variables sin restricciones de signo. Otra opcin podra ser tomar el
origen en t
1
= 0 y todas las variables no negativas.
6.7.2 El mtodo PERT
El algoritmo CPM presupone que la duracin de cada actividad es conocida con
exactitud, aunque por lo general slo es posible realizar algunas estimaciones sobre
la duracin de las actividades. Se suele suponer que los tiempos de ejecucin de
lcada actividad es una variable aleatoria (T
ij
) que sigue una distribucin Beta. El
mtodo PERT parte de tres estimaciones del tiempo empleado en realizar cada una
de las actividades:
a = duracin de la actividad en las condiciones ms favorables.
b = duracin en las condiciones ms desfavorables.
m = duracin ms probable (la moda).
Bajo la hiptesis de que la duracin de las actividades siga una distribucin Beta
la media y varianza de la variable aleatoria tiempo de duracin de cada actividad,
T
ij
, puede estimarse como:
E(T
ij
) =
a+4m+b
6
var (T
ij
) =
(ba)
2
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(T
ij
) . Tambin se puede
optar por hallar el camino ms largo desde el inicio al nal 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
uctuaciones 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.
Ejemplo 73 Un proyecto se compone de las actividades a, b, c, d, e, f, g, h, i,
j y k. Las relaciones entre las actividades son: a < b, b < c, c < d, b <
e, d < f, e < g, f, g < h, e < i, i < j, h, j < k. De cada actividad se
174 TEMA 6. MODELOS DE REDES
han obtenido tres estimaciones sobre su duracin en semanas:
Actividad a b c d e f g h i j k
t
o
1 1 3 4 2 1 0.5 5 2 1 1
t
m
2 1.5 5 6 4 1.5 1 6 3 1.5 1
t
p
4 3 10 11 6 3 2 9 4 2 2
1. Dibujar la red del proyecto.
2. Hallar el camino crtico, la esperanza y la varianza de la duracin del proyecto.
3. Si slo se dispone de 21 semanas, cul es la probabilidad de terminar el
proyecto?
4. Cul es la probabilidad de terminar el proyecto en no ms de tres semanas
despus del tiempo esperado?
5. De cunto tiempo se debera disponer de manera que la probabilidad de ter-
minar el proyecto en este tiempo fuera del 90%?
1.
2 1 8 3 4 5 9
10
7 6
a b c d f h k
g
i
j
e
2. t
a
=
1 + 4 2 + 4
6
= 2. 166 7; t
b
=
1 + 4 1.5 + 3
6
= 1. 666 7;
t
c
=
3 + 4 5 + 10
6
= 5. 5, t
d
=
4 + 4 6 + 11
6
= 6. 5;
t
e
=
2 + 4 4 + 6
6
= 4.0; t
f
=
1 + 4 1.5 + 3
6
= 1. 666 7
t
g
=
0.5 + 4 1 + 2
6
= 1. 083 3; t
h
=
5 + 4 6 + 9
6
= 6. 333 3,
t
i
=
2 + 4 3 + 4
6
= 3.0; t
j
=
1 + 4 1.5 + 2
6
= 1. 5,
t
k
=
1 + 4 1 + 2
6
= 1. 166 7.
Hallamos el camino ms largo. Las etiquetas que corresponden a los nodos
son:
6.7. CPM Y PERT 175
E(1) = 0, E(2) = 2.16, E(3) = 3.83, E(4) = 9.33,
E(5) = 7.83, E(6) = 15.83, E(7) = 17.43,
E(8) = 10.83, E(9) = 23.73, E(10) = 24.89
2. 166 7 + 1. 666 7 + 5. 5 + 6. 5 + 1. 666 7 + 6. 333 3 + 1. 166 7 = 25.0 semanas.
El camino crtico es a b c d f h k.
La esperanza de la duracin total del proyecto sera la suma de las esperanzas
de los arcos del camino crtico (25), siempre que las uctuaciones en la duracin
de las actividades no afecten a la seleccin de las actividades crticas. En este
caso el nmero de actividades es demasiado pequeo para que la aproximacin
normal sea aplicable. No obstante, supondremos que sto es as para poder
ilustrar el mtodo con un ejemplo que no precise de muchos datos.
La esperanza del proyecto es 25. Calculamos ahora su varianza:
V arianza = V a +V b +V c +V d +V f +V h +V k =
=
(41)
2
36
+
(31)
2
36
+
(103)
2
36
+
(114)
2
36
+
(31)
2
36
+
(95)
2
36
+
(21)
2
36
= 3. 6667.
La desviacin tpica es

3. 666 7 = 1. 914 9.
3. La probabilidad de acabar el proyecto en 21 semanas es:
P(T
p
21) = P(
T
p
25
1. 914 9

2125
1. 914 9
) = P(z
2125
1. 914 9
) =
= P(z 2. 088 9) = 0.018.
4. La probabilidad de que no se demore ms de 3 semanas sobre el tiempo previsto
por la media es:
P(T
p
28) = 0.941 4.
5. P(T
p
D) = 0.9 =D = 27. 454
Se debe disponer aproximadamente de 27 semanas y media.
Dicultades de aplicacin del mtodo PERT
Algunas objeciones pueden hacerse al mtodo PERT:
a) Que la duracin de las actividades no suelen ser variables independientes.
b) Que los tiempos de duracin de las actividades quizs no sigan distribuciones
Beta.
c) Que el camino crtico no siempre ser el mismo (puede verse afectado por los
cambios en la duracin real de las actividades).
Algunas de estas dicultades se solucionan realizando una gran cantidad de si-
mulaciones de la ejecucin del proyecto por el mtodo Montecarlo y estimando la
probabilidad pedida a partir de los resultados obtenidos en estas simulaciones (pro-
porcin de simulaciones con un tiempo de terminacin menor que uno prejado).
176 TEMA 6. MODELOS DE REDES
Tema 7
Programacin Entera
7.1 Introduccin
Un problema de Programacin entera Pura (PE) es un problema de Progra-
macin Lineal (PL) que ha de tener soluciones enteras. Si slo algunas de las
variables han de tomar valores enteros, el problema es de Programacin entera
mixta. Algunos de estos problemas slo admiten como soluciones los valores 0,1.
Estos problemas se suelen llamar Problemas de Programacin entera 0-1 o de
Programacin Booleana.
La relajacin de un problema de Programacin Entera se obtiene suprimiendo la
condicin de que las variables sean enteras.
Se cumplen las siguientes propiedades:
a) La regin factible de un PE est contenida en la regin factible de su relajacin.
b) Si el problema relajado tiene solucin entera ptima, es tambin solucin del
problema entero correspondiente.
c) El valor del objetivo en la solucin ptima de un PE (con objetivo de maxi-
mizacin/minimizacin) es menor/mayor que la solucin ptima de su rela-
jacin.
A continuacin mostramos con un ejemplo que la solucin del problema relajado
puede no ser una buena aproximacin de la solucin del problema de programacin
entera correspondiente.
Ejemplo 74 Resolver el problema de programacin entera siguiente:
max z = 10 x
1
+ 33 x
2
,
s.a : x
1
+ 3.2x
2
7, x
1
, x
2
0 y enteras.
177
178 TEMA 7. PROGRAMACIN ENTERA
Resolviendo el problema relajado se obtiene la solucin
x
1
= 0, x
2
= 2.1875, con z = 72.1875
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.
7.2 Algunos problemas de programacin entera
7.2.1 El problema de la mochila
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:
objeto peso utilidad
1 11 8
2 13 11
3 9 6
4 5 4
Elegir los objetos que se han de meter en la mochila para obtener mxima utilidad.
El planteamiento del problema sera
max : 8x
1
+ 11x
2
+ 6x
3
+ 4x
4
s.a : 11x
1
+ 13x
2
+ 9x
3
+ 5x
4
28,
x
i
{0, 1}
Con el mismo planteamiento se hara el problema siguiente:
Ejemplo 76 Se est considerando invertir en 4 negocios, descritos de la forma
siguiente:
tipo de negocio inversin ganancia
1 11 8
2 13 11
3 9 6
4 5 4
7.2. ALGUNOS PROBLEMAS DE PROGRAMACIN ENTERA 179
Si slo disponemos de 28 millones En qu negocios debemos invertir para que
la ganancia sea mxima?
El problema de la mochila es un problema de programacin 0,1 con una nica
restriccin.
7.2.2 Problema del viajante
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 x
ij
con valor 1 si viaja de i a j y 0 si no viaja por este
trayecto, c
ij
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
ij
x
ij
sa :
_
_
_

j=1,n
x
ij
= 1 i

i=1,n
x
ij
= 1 j
x
ij
= 0, 1
con c
ii
= M para evitar x
ii
= 1.
Las primeras n ecuaciones indican que desde cada ciudad i viaja a una nica
ciudad. Las segundas n restricciones indican que cada ciudad se alcanza slo una vez.
Pero este planteamiento admite soluciones de subrutas separadas (ver ejemplo 78).
Por este motivo no se puede resolver por asignacin ya que hay que imponer nuevas
condiciones para eliminar ciertas soluciones que seran vlidas para un problema de
asignacin pero no para el del viajante. Las restricciones que se han de aadir para
evitar obtener una solucin con subrutas separadas pueden ser:
u
i
u
j
+nxij n 1, i, j = 2, 3, 4.., n, i = j, u
i
, u
j
0 (7.1)
Ejemplo 78 Comprobar que si las ciudades son 1, 2, 3, 4, la solucin x
12
= x
21
=
x
34
= x
43
= 1 con las restantes incgnitas nulas que est representada en la grca
de la gura 7.1 no es factible para el problema del viajante.
En efecto, la subruta de la derecha, no cumple las condiciones de las inecuaciones
7.1.
Las ecuaciones que corresponden a los arcos son:
u
3
u
4
+4x
34
3 y u
4
u
3
+4x
43
3. Sumando ambas inecuaciones se obtiene
4x
34
+ 4x
43
6. Como ambas incgnitas toman el valor 1, obtengo 8 6. Por lo
tanto esta solucin no sera factible para el problema del viajante.
180 TEMA 7. PROGRAMACIN ENTERA

1
2
3
4
Figura 7.1: Grafo de subrutas separadas.
7.2.3 Problema de costo jo
Ejemplo 79 Un artesano fabrica tres tipos de productos de piel: monederos, bolsos
y zapatos. Para realizar estos productos necesita alquilar maquinaria adecuada. Para
hacer monederos debe alquilar una mquina que supone un gasto de 200 euros por
semana, para hacer bolsos una mquina por 150 euros por semana y para los zapatos
el gasto en maquinaria es de 100 euros por semana. El tiempo y la piel empleada
en cada tipo de producto viene dada por la tabla:
costo precio de venta horas de trabajo piel empleada
monederos 4 8 2 3
bolsos 10 20 3 4
zapatos 8 15 6 5
Dispone de 140 horas de trabajo y de 160 metros cuadrados de piel. Se pretende
maximizar los benecios semanales.
Se llaman costes jos a los costes de alquiler de maquinaria. Estos costes no
dependen del nmero de productos de cada tipo que se fabriquen, sino del hecho que
se fabrique o no el producto que precisa cada tipo de mquina.
Tomamos como variables x
i
e y
i
. Las variables x
i
indican el numero de produc-
tos de cada clase que se fabrican. Las variables y
i
toman el valor 1 si se fabrican
productos de la clase i, (en este caso es necesario alquilar la maquinaria correspon-
diente) y toman el valor 0 si no se fabrican (no es preciso alquilar la maquinaria
correspondiente).
El planteamiento de este problema puede ser:
Max (8x
1
+ 20x
2
+ 15x
3
) (4x
1
+ 10x
2
+ 8x
3
) (200y
1
+ 150y
2
+ 100y
3
)
sujeto a:
2x
1
+ 3x
2
+ 6x
3
140
7.3. EL ALGORITMO DE RAMIFICACIN Y ACOTACIN 181
3x
1
+ 4x
2
+ 5x
3
160
x
i
enteros y
i
{0, 1}.
Adems hay que aadir una restriccin que garantice que se alquile la maquinaria
necesaria para cada tipo de producto que se fabrique, es decir que siempre que x
i
sea mayor que 0, y
i
ha de ser 1. Con este objeto aadimos las restricciones:
x
i
M
i
y
i
, donde M
i
es un nmero positivo sucientemente grande.
7.3 El algoritmo de ramicacin y acotacin
Si el problema entero tiene una regin factible acotada el nmero de soluciones
posibles es nito, as que existe la posibilidad de explorar uno a uno cada punto. Pero
este procedimiento, aparte de ser poco eciente, no es aplicable si la regin factible no
fuera acotada. Un mtodo de resolucin de los problemas de programacin Entera
es el algoritmo de Ramicacin y Acotacin que bsicamente opera dividiendo la
regin factible en zonas, y excluyendo las zonas donde no puede estar la solucin.
Una propiedad que hay que tener en cuenta al aplicar este algoritmo es que si el
problema relajado tiene soluciones enteras, sta ser tambin solucin del PE.
Explicaremos el algoritmo de ramicacin aplicndolo al ejemplo siguiente:
Ejemplo 80 Resolver el problema de programacin lineal entera
max z = 5x
1
+ 6x
2
sa : 10x
1
+ 3x
2
52
2x
1
+ 3x
2
18
x
1
, x
2
0 y enteras
Conviene seguir el procedimiento de resolucin de este problema mirando el es-
quema de la gura 7.4 en la pgina 184. Los nmeros de los problemas indican el
orden en que se han ido planteando y la letra el orden en que se han resuelto.
En primer lugar resolvemos el problema relajado. En este caso el problema
relajado es:
Problema 1
max z = 5x
1
+ 6x
2
sa : 10x
1
+ 3x
2
52
2x
1
+ 3x
2
18
x
1
, x
2
0
La solucin de este problema es x
1
=
17
4
, x
2
=
19
6
, z = 40.25.
La regin factible de este problema es la de la gura 7.2.
182 TEMA 7. PROGRAMACIN ENTERA
Figura 7.2: Regin factible del problema relajado.
Elegimos una variable con solucin no entera. Sea sta la variable x
1
=
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 x
1
4, 4 < x
1
< 5 y
x
1
5. La regin intermedia, que corresponde a 4 < x
1
< 5, no ha de considerarse
puesto que no puede contener ningn punto con x
1
entera. Ramicar 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
max z = 5x
1
+ 6x
2
sa : 10x
1
+ 3x
2
52
2x
1
+ 3x
2
18
x
1
4
x
1
, x
2
0
y
Problema 3
max z = 5x
1
+ 6x
2
sa : 10x
1
+ 3x
2
52
2x
1
+ 3x
2
18
x
1
5
x
1
, x
2
0
La regin factible de estos dos subproblemas est representada en la gura 7.3.
La solucin del problema primitivo ser la mayor de las soluciones de los dos
problemas en que hemos ramicado.
Elegimos como para continuar resolver el problema 2. Resolvindolo, obtenemos
la solucin x
1
= 4, x
2
= 3.

3, z = 40. Como esta solucin no es entera volvemos a


ramicar con respecto a la variable x
2
que no es entera. Es decir, que dividimos el
problema 2 en dos subproblemas:
a) Problema 4 = Problema2 + restriccin x
2
3.
b) Problema 5 = Problema2 + restriccin x
2
4.
La solucin del problema 4 es x
1
= 4, x
2
= 3, z = 38. Como es entera la
registramos como solucin candidata y el valor z = 38 como cota inferior de la
funcin objetivo. Decimos que el problema 4 es un problema terminal (no hay que
7.3. EL ALGORITMO DE RAMIFICACIN Y ACOTACIN 183
Figura 7.3: Regiones factibles de los problemas 2 y 3.
seguir ramicando). Resolviendo el problema 5 obtenemos la solucin x
1
= 3, x
2
=
4, z = 39. Por tanto la consideramos solucin candidata y registramos su valor como
cota inferior del objetivo ya que mejora la anterior cota que era 38. Tambin este
problema es terminal. Con esto hemos terminado todos los problemas de esta rama.
Volvemos ahora al problema 3. Su solucin es x
1
= 5, x
2
=
2
3
, z = 29. Como
tenemos una solucin candidata anterior con mejor valor para el objetivo (29 < 39),
declaramos el problema como terminal y no seguimos ramicando. Cuando ningn
nuevo problema puede ramicarse (porque se han declarado todos como terminales)
se selecciona la solucin ptima: la solucin candidata con mejor valor para la funcin
objetivo. En nuestro caso la solucin ptima del problema entero planteado es por
tanto x
1
= 3, x
2
= 4, z = 39.
7.3.1 Resumen
Reglas de Ramicacin:
Se ramica a partir de una variable no entera.
Se elige el siguiente problema a resolver arbitrariamente.
Cuando lleguemos a un problema terminal para elegir el que se resuelve a
continuacin se usa algn criterio. En el ejemplo hemos seleccionado el ltimo
problema creado no resuelto. Tambin se usa a veces el criterio de resolver
primero el problema con mejor cota para la funcin objetivo.
Reglas de Acotacin (caso maximizante):
Son problemas terminales los siguientes:
Los problemas Infactibles.
184 TEMA 7. PROGRAMACIN ENTERA

Problema 1.A
x
1
= 17/4, x
2
= 9/6, Z = 161/4
cota =0
x
1
4 x
1
5
Problema 2.B
x
1
= 4, x
2
= 10/3, Z = 40

Problema 4.C
x
1
= 4, x
2
= 3, Z = 38
cota = 38
Solucin candidata.
Problema terminal
Problema 5.D
x
1
= 3, x
2
= 4, Z = 39
cota=39
Solucin candidata.
Problema terminal

Problema 3.E
x
1
= 5, x
2
= 2/3, Z = 29
cota = 39
Terminal por ser superado por la
cota del problema D
x
2
4
x
2
3
Figura 7.4: Diagrama de resolucin del P.E. Mtodo de Ramicacin y Acotacin
7.4. ALGORITMO DE CORTE O DE GOMORY 185
Aquellos problemas con solucin entera (Candidata). Cuando tenemos una
solucin candidata registramos su valor de z como cota inferior para z. Esta
cota inferior se revisar cuando encontremos otra solucin candidata con mayor
valor que la registrada anteriormente.
Aquellos cuyo valor de z en la solucin candidata es superada por la cota
inferior para z registrada actualmente.
La solucin ptima nal es la mejor solucin candidata.
7.3.2 Programacin entera mixta
Para resolver problemas de Programacin Entera Mixta puede usarse tambin el
algoritmo de ramicacin, pero slo se ramica con respecto a las variables que han
de ser enteras.
7.4 Algoritmo de corte o de Gomory
El algoritmo de corte o de Gomory es otro procedimiento de resolucin de proble-
mas de programacin entera. Este algoritmo elimina en la regin factible porciones
donde est la solucin del problema relajado pero no puede estar la solucin entera
ptima. Para explicar la losofa de este algoritmo lo usamos para resolver de nuevo
el problema del ejemplo 80.
Ejemplo 81 Resolver por el algoritmo de Corte o de Gomory el P.E.
max z = 5x
1
+ 6x
2
sa : 10x
1
+ 3x
2
52
2x
1
+ 3x
2
18
x
1
, x
2
0, x
1
, x
2
Z
Resolvemos el problema relajado por el mtodo de simplex. La tabla ptima es:
x
1
x
2
h
1
h
2
x
1
1 0
1
8

1
8
17
4
x
2
0 1
1
12
5
12
19
6
0 0
1
8
15
8
Para aplicar el algoritmo de Gomory seleccionamos un contraste en el que la
variable bsica tome un valor fraccionario. Tomamos, por ejemplo, la primera res-
triccin:
x
1
+
1
8
h
1

1
8
h
2
=
17
4
186 TEMA 7. PROGRAMACIN ENTERA
Denimos 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:
x
1
+ (0 +
1
8
)h
1
+ (1 +
7
8
)h
2
= 4 +
1
4
Separando los trminos con parte no entera tenemos:
x
1
h
2
4 =
1
8
h
1

7
8
h
2
+
1
4
Imponiendo la condicin de que el segundo miembro de esta igualdad sea no
positivo, se obtiene un corte en la regin factible:

1
8
h
1

7
8
h
2
+
1
4
0
Este corte tiene las siguientes propiedades:
(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.
En efecto, la condicin 1 se cumple ya que los valores de h
1
y h
2
son nulos para la
solucin del problema relajado. Sustituyendo en la inecuacin del corte estos valores
obtenemos
1
4
0. Por tanto la solucin primitiva no cumple la condicin impuesta
por el corte. Tambin se cumple la segunda propiedad ya que para soluciones enteras
ambos miembros de la igualdad
x
1
h
2
4 =
1
8
h
1

7
8
h
2
+
1
4
han de ser enteros. El segundo trmino de la igualdad ser siempre menor o igual
que
1
4
, 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:
x
1
x
2
h
1
h
2
s
3
x
1
1 0
1
8

1
8
0
17
4
x
2
0 1
1
12
5
12
0
19
6
s
3
0 0
1
8

7
8
1
1
4
0 0
1
8
15
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:
x
1
x
2
h
1
h
2
s
3
x
1
1 0 0 1 1 4
x
2
0 1 0 1
2
3
10
3
h
1
0 0 1 7 8 2
0 0 0 1 1
La solucin es x
1
= 4, x
2
= 10/3, z = 40.
Representamos ahora el corte. Expresando previamente h
1
y h
2
en funcin de
las variables de partida: h
1
= 52 10x
1
3x
2
, h
2
= 18 2x
1
3x
2
y sustituyendo
en la inecuacin del corte se obtiene:

1
8
h
1

7
8
h
2
+
1
4
=
1
8
(52 10x
1
3x
2
)
7
8
(18 2x
1
3x
2
) +
1
4
=
= 22.0 + 30x
1
+ 3x
2
Por lo tanto la restriccin del corte es equivalente a:
3 x
1
+ 3 x
2
22 =x
1
+x
2

22
3
Aadiendo esta restriccin en la grca se obtiene la nueva regin factible (ver
gura 7.5), algo menor que regin factible inicial, ya que se ha eliminado una pequea
porcin de ella.
Figura 7.5: Regin factible. Corte I del algoritmo de Gomory.
Como la solucin an no es entera realizamos ahora otro corte usando la segunda
ecuacin, ya que la primera solucin es entera:
188 TEMA 7. PROGRAMACIN ENTERA
x
2
+h
2

2
3
s
3
=
10
3
=x
2
+h
2
+
_
1 +
1
3
_
s
3
= 3 +
1
3
=
x
2
+h
2
+ (1) s
3
3 =
1
3
s
3
+
1
3
Por tanto el nuevo corte es
1
3
s
3
+
1
3
0
Aadiendo esta nueva restriccin a las anteriores obtenemos la siguiente tabla de
simplex:
x
1
x
2
h
1
h
2
s
3
s
4
x
1
1 0 0 1 1 0 4
x
2
0 1 0 1
2
3
0
10
3
h
1
0 0 1 7 8 0 2
s
4
0 0 0 0
1
3
1
1
3
0 0 0 1 1 0
Aplicando de nuevo el mtodo Dual de Simplex obtenemos:
x
1
x
2
h
1
h
2
s
3
s
4
x
1
1 0 0 1 0 3 3
x
2
0 1 0 1 0 2 4
h
1
0 0 1 7 0 24 10
s
3
0 0 0 0 1 3 1
0 0 0 1 0 3
La solucin actual es entera y ptima: x
1
= 3, x
2
= 4, z = 39.
La expresin respecto a las variables primitivas de este segundo corte es la si-
guiente: x
1
+x
2
7.
La representacin grca de la regin factible que origina este nuevo corte aparece
en la gura 7.6.
Gomory ha demostrado que se llega a una solucin entera en un nmero nito
de cortes.
7.4.1 Resumen del algoritmo de Gomory
El algoritmo tiene los siguientes pasos:
1. Hallar una solucin ptima para al problema relajado. Si la solucin es entera
tenemos la solucin ptima. Si no es as ir al paso 2.
7.5. PROGRAMACIN 0-1. ALGORITMO DE ENUMERACIN 189
Figura 7.6: Regin factible. Corte II del algoritmo de Gomory.
2. Elegir un contraste en la tabla ptima del simplex cuyo trmino independiente
no sea entero. (Se recomienda elegir aquel cuya parte fraccionaria sea lo ms
cercana posible a 0.5). Este contraste se usar para generar el corte.
3. Reescribir este contraste sustituyendo cada coeciente por su parte entera ms
su parte fraccionaria.
4. Trasponer hacia la derecha los trminos con coecientes fraccionarios.
5. El corte se obtiene imponiendo la condicin de que la expresin de la derecha
sea menor igual que 0.
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.
7.5 Programacin 0-1. Algoritmo de enumeracin
Es un procedimiento que permite hallar la solucin de los problemas de programacin
Binaria (0-1). Es de notar que cualquier problema de programacin entera puede in-
terpretarse como un problema de programacin 0-1, siempre que las variables enteras
estn acotadas. Para ello basta considerar cada variable como un nmero expresado
en base 2; y como incgnitas los valores de sus cifras. Por ejemplo cualquier nmero
menor que 8 puede expresarse en la forma:
x = 2
2
y
1
+ 2y
2
+y
3
, y
i
= 0, 1
190 TEMA 7. PROGRAMACIN ENTERA
No obstante no suele emplearse esta opcin, a causa de que el nmero de variables
crece considerablemente.
El algoritmo de Enumeracin que presentamos requiere que se modique el pro-
blema inicial para que los coecientes de la funcin objetivo sean positivos y estn
ordenados. Para conseguirlo se ordenan los trminos de la funcin objetivo por el
valor absoluto del coeciente. A continuacin se realiza el cambio x
i
por y
j
si su
coeciente es positivo y por 1 y
j
si es negativo tal como se muestra en el ejemplo
que sigue.
Ejemplo 82 Preparar el problema que sigue para resolverlo por el algoritmo de
enumeracin
max z = 3x
1
+x
2
+ 2x
3
x
4
+x
5
sa : 2x
1
+x
2
3x
4
1
x
1
+ 2x
2
3x
3
x
4
+ 2x
5
2
x
i
{0, 1}
Reordenando la funcin objetivo por el valor absoluto de sus coecientes
z = x
4
+x
2
+x
5
+ 2x
3
+ 3x
1
y tomando
x
4
= 1 y
1
, x
2
= y
2
, x
5
= y
3
, x
3
= y
4
, x
1
= y
5
.
Se obtiene el problema equivalente:
max z = y
1
+y
2
+y
3
+ 2y
4
+ 3y
5
1
s.a. : 3y
1
+y
2
+ 2y
5
4
y
1
+ 2y
2
+ 2y
3
3y
4
+y
5
3
y
i
{0, 1}.
Cuando se va a aplicar el algoritmo de enumeracin se suprime la constante (-1
en este caso) de la funcin objetivo.
El algoritmo de Enumeracin es una modicacin del algoritmo de Ramicacin
y Acotacin.
Reglas que han de seguirse:
1. Se realiza la transformacin detallada en el ejemplo previo para conseguir una
funcin objetivo con coecientes positivos y ordenados de menor a mayor.
2. El problema relajado se dene ahora suprimiendo todas las restricciones de las
variables, excepto las que imponen que las variables sean binarias.
3. En el nodo de partida se dan los valores mas favorables para las variables (todos
los valores 1 si el problema es de maximizacin y 0 si es de minimizacin). Se
7.5. PROGRAMACIN 0-1. ALGORITMO DE ENUMERACIN 191
comprueba si estos valores cumplen las restricciones. Si es as, tenemos la
solucin ptima. En caso contrario se ramica el problema.
4. La ramicacin se hace comenzando con la variable x
1
= 0, x
1
= 1 siguiendo
un orden ascendente en la variable de ramicacin en los nodos sucesivos y
jando estos valores en los nodos que correspondan a la misma rama.
5. En el problema relajado correspondiente a cada nodo se dan a las variables,
con valor no jado de antemano, los valores ms favorables que no den lugar a
soluciones ya analizadas previamente. Se calcula el valor de su funcin objetivo.
Se comprueba si esta solucin es factible y si es as se registra como solucin
candidata y el subproblema como terminal. El valor del objetivo se registra
como cota inferior(CI).
6. Cuando analicemos un subproblema cuya cota superior (mejor valor del obje-
tivo) sea superada por CI, este subproblema ser declarado terminal.
7. Si el subproblema tratado no es declarado terminal lo ramicamos con respecto
a la siguiente variable no jada anteriormente. La variable con respecto a la
que ramicamos queda jada en los problemas sucesivos de la misma rama.
Cuando el rbol queda terminado la solucin ptima es la solucin candidata con
mejor valor para el objetivo.
Algunos autores incluyen procedimientos para declarar algunos problemas in-
factibles, pero no vamos a considerar aqu estos procedimientos.
Ejemplo 83 En el rbol del la gura 7.7 de la pgina 192 se muestra el esquema
del procedimiento seguido para resolver el problema del ejemplo 82. (Suponemos que
hemos resuelto en primer lugar los problemas que estn marcados como A, B, C ;
OPT)
La solucin ptima es (y
1
, y
2
, y
3
, y
4
, y
5
) = (0, 1, 1, 0, 1). Hay otros problemas
que alcanzan tambin el valor z = 5 pero las soluciones ensayadas no son factibles.
Trasladando este resultado al problema primitivo se obtiene:
(x
1
, x
2
, x
3
, x
4
, x
5
) = (1, 1, 0, 1, 1) con valor para z = 3 +1 +2 0 1 +1 = 4.
Ejemplo 84 Dado el problema de programacin lineal entero 0-1, resolverlo uti-
lizando el algoritmo de enumeracin.
max z = 9x
1
+ 5x
2
+ 6x
3
+ 4x
4
sa : 6x
1
+ 3x
2
+ 5x
3
+ 2x
4
10
x
3
+x
4
1
x
1
+x
3
0
x
2
+x
4
0
192 TEMA 7. PROGRAMACIN ENTERA
Figura 7.7: Resolucin del problema de P. E. usando el algoritmo de Enumeracin.
7.5. PROGRAMACIN 0-1. ALGORITMO DE ENUMERACIN 193
x
i
{0, 1} i = 1, 2, 3, 4
Ordenando la funcin objetivo por el valor absoluto de sus coecientes, y tomando
x
4
= y
1
, x
2
= y
2
, x
3
= y
3
, x
1
= y
4
,
se obtiene el problema equivalente:
max z

= 4y
1
+ 5y
2
+ 6y
3
+ 9y
4
sa : 2y
1
+ 3y
2
+ 5y
3
+ 6y
4
10
y
1
+y
3
1
y
3
y
4
0
y
1
y
2
0
y
i
{0, 1} i = 1, 2, 3, 4
El esquema de resolucin de este problema puede verse en la gura 7.8 de la
pgina 194.
La solucin ptima resulta y
1
= 0, y
2
= 1, y
3
= 0, y
4
= 1, con z

= 14.
Deshaciendo el problema transformado tenemos que la solucin ptima del problema
inicial es:
x
1
= 1, x
2
= 1, x
3
= 0, x
4
= 0, con z = 14.
194 TEMA 7. PROGRAMACIN ENTERA

1111; z=24; CI=0
1011; z=19; 0111; z=20;
1101; z=18;
1001; z=13;
Terminal;
z=13<CI=14
x
1
=0 x
1
=1
x
2
=1
x
2
=0
x
2
=0 x
2
=1
0101; z=14;
Terminal; CI=14
Candidata y ptima
0011; z=15;
0001; z=9;
Terminal; z=9<CI=14
0010; z=6;
Terminal; z=6<CI=14
x
3
=0 x
3
=1
1100; z=9;
Terminal 9<14
1110;
z=15;
Infactible y
final de la
rama
x
3
=0
x
3
=1
Figura 7.8: Algoritmo de Enumeracin aplicado al ejemplo 84.
Tema 8
Teora de Colas
8.1 Introduccin
Para un Ingeniero informtico es interesante saber que una de las herramientas
matemticas ms poderosas para realizar anlisis cuantitativos de las redes de orde-
nadores es la teora de colas. Esta tcnica se desarroll primeramente para analizar
el comportamiento estadstico de los sistemas de conmutacin telefnica, sin em-
bargo, desde entonces, tambin ha sido aplicada para resolver muchos problemas de
redes.
Se pueden utilizar sistemas de colas para modelar procesos en los cuales los
clientes van llegando, esperan su turno para recibir el servicio, reciben el servicio y
luego se marchan. Ejemplos de sistemas de colas se encuentran en las cajas regis-
tradoras de los supermercados, en las ventanillas de las entidades bancarias, en las
salas de espera de los consultorios mdicos, etc..
Los sistemas de colas pueden denirse mediante cinco componentes (ver gura
8.1):
1. La funcin de densidad de probabilidad del tiempo entre llegadas.
2. La funcin de densidad de probabilidad del tiempo de servicio.
3. El nmero de servidores.
4. La disciplina de ordenamiento en las colas.
5. El tamao mximo de las colas.
La densidad de probabilidad del tiempo entre llegadas describe el intervalo de
tiempo entre llegadas consecutivas. Podramos imaginarnos que contratramos a
alguna persona (por ejemplo, a un estudiante de ingeniera informtica) para ob-
servar la llegada de los clientes. A cada llegada de un nuevo cliente, el observador
registrara el tiempo transcurrido desde que ocurri la llegada del anterior cliente.
195
196 TEMA 8. TEORA DE COLAS
Sistemas de Colas
Llegadas
Disciplina de l a cola
mecanismo de
servicio
Col a Salidas
Figura 8.1: Esquema de un sistema de colas.
Despus de que hubiese transcurrido un tiempo sucientemente largo de estar re-
gistrando los intervalos de tiempo entre llegadas consecutivas, estos datos podran
clasicarse y agruparse. La densidad de probabilidad de estas muestras caracteriza
el proceso de llegadas.
Cada cliente requiere cierta cantidad de tiempo, el que precise el servidor para
realizar el servicio que este cliente demanda. El tiempo de servicio requerido por
cada cliente es tiempo de trabajo activo para el servidor y vara entre un cliente y
otro. Por ejemplo, en la caja de un supermercado un cliente puede presentar un carro
lleno de artculos y el siguiente puede traer nicamente una lata de refresco. Por
eso.para analizar un sistema de colas, adems de conocer la densidad de probabilidad
de los tiempos entre llegadas, debe conocerse tambin la funcin de densidad de
probabilidad del tiempo empleado en prestar servicio.
La cantidad de servidores se explica a travs de los ejemplos siguientes: Muchos
bancos, por ejemplo, tienen una sola cola larga para todos sus clientes y, cada vez
que uno de los cajeros se libera, el cliente que se encuentra primero en la cola se
dirige a la caja que ha quedado libre. A este sistema se le denomina sistema de cola
multiservidor. En otros bancos, cada cajero o cajera, tiene su propia cola particular.
En este caso tendremos un conjunto de colas independientes de un solo servidor, y
no un sistema multiservidor.
La disciplina de una cola describe el orden segn el cual los clientes van siendo
atendidos. Los supermercados utilizan el mtodo de servir primero al cliente que ha
llegado antes. En las salas de urgencia de los hospitales se utiliza, ms a menudo,
el criterio de atender primero al que est ms grave. El primero en ser atendido no
es el que haya llegado antes. En una ocina, ante la fotocopiadora, es frecuente que
se despache primero al que tenga menor trabajo, esto es, entra primero el que tenga
que hacer menos fotocopias.
La capacidad de la cola es el nmero de clientes mximo que puede contener. No
todos los sistemas de colas poseen una capacidad ilimitada de recepcin de clientes.
Cuando hay demasiados clientes que quieren hacer cola, pero slo existe un nmero
nito de lugares de espera, algunos de estos clientes pueden no ser admitidos en la
cola.
En resumen: Las colas o lneas de espera son situaciones bastante corrientes.
8.1. INTRODUCCIN 197
Clientes esperando servicio en un banco, alumnos que esperan matricularse, pro-
ductos en una lnea de produccin esperando ser procesados. Los sistemas que se
caracterizan por elementos que tienen que esperar para recibir un servicio se llaman
Fenmenos de Espera. Las colas se pueden caracterizar por los momentos de lle-
gadas de los clientes y por los momentos de salida de stos, cuando ya han recibido
el servicio solicitado. Las llegadas suelen describirse por medio de una distribucin
de probabilidad para los intervalos de tiempo entre las llegadas de dos clientes conse-
cutivos. Igualmente, los tiempos empleados en prestar cada servicio siguen tambin
una cierta distribucin de probabilidad. Adems, un sistema de espera soporta dos
costes: El de dar servicio y el de tener elementos esperando.
8.1.1 Costos de los sistemas de colas
Un sistema de colas puede dividirse en sus dos componentes de mayor importancia,
la cola y la instalacin de servicio. Las llegadas son las unidades que entran en el
sistema para recibir el servicio.
Los elementos que llegan se unen primero a la cola, salvo que no haya lnea de
espera en ese instante. En ese caso se dice que la cola est vaca. Desde la cola, las
llegadas van a la instalacin de servicio de acuerdo con la disciplina de la cola, es
decir, de acuerdo con la regla para decidir cul de las llegadas se sirve despus del
que est actualmente recibiendo servicio. Que el primero en llegar sea el primero
en ser servido es una regla comn, pero podra servirse con prioridades, o siguiendo
alguna otra regla. Una vez que se completa el servicio, las llegadas se convierten en
salidas.
Ambas componentes del sistema tienen costos asociados que deben de conside-
rarse.
Costo de Espera.
Esperar signica desperdicio de algn recurso activo que bien se podra aprovechar
en otra cosa. El coste medio de una cola por unidad de tiempo esta dado por CL,
donde C es el costo de espera por cliente y unidad de tiempo y L =Nmero promedio
de clientes en cola.
Costo de Servicio.
Este costo es el que est asociado a la compra de las instalaciones de servicio, as
como los gastos de ponerlas en uso como pueden ser los gastos de mantenimiento y
personal.
Sistema de costo mnimo.
Aqu hay que tomar en cuenta que tasas bajas de servicio normalmente darn
lugar a largas colas y costos de espera muy altos. Conforme aumenta el servicio
disminuyen los costos de espera, pero aumenta el costo de servicio. Entonces el
propsito es encontrar el balance adecuado para que el costo total sea el mnimo.
198 TEMA 8. TEORA DE COLAS
8.1.2 Estructuras tpicas.
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.
Ejemplos de sistemas de colas
Situacin Llegadas Colas Servicio
Autobs viajeros en las paradas viaje en autobs
Hospital Enfermos sala de espera consulta asistencia
Aeropuerto Aviones Aviones espera Pista, Controladores, ...
Dpto. Bomberos Alarma incendios Incendios Mecanismo extincin
Ca. telefnica N
o
marcado Llamadas espera Conmutador
Lavado coches Coches Coches en cola Mecanismo de lavado
Juzgados Casos Casos atrasados Juez: Sentencias,...
Ocina correos Cartas Buzn Empleados correos
Servidor Web Peticin archivos Cola peticiones Transferir datos
Permitiendo que varen el nmero de colas y el nmero de servidores, pueden
hacerse los diagramas de los cuatro tipos de sistemas de la gura 8.2. Cada lnea de
espera individual y cada servidor individual se muestra por separado.
El primer sistema que se muestra en la gura 8.2, se llama un sistema de un
servidor y una cola o puede describir un lavado de coches automtico. El segundo,
una lnea con mltiples servidores, es tpico de una peluquera o una panadera en
donde los clientes toman un nmero al entrar y se les sirve cuando llega el turno. El
tercer sistema, aquel en que cada servidor tiene una lnea separada, es caracterstico
de los bancos y las tiendas de autoservicio. El cuarto sistema es una lnea con
servidores en serie, puede describir por ejemplo el comportamiento de una cadena
de montaje en una fbrica.
8.2 Terminologa
8.2.1 Caractersticas fsicas
Servidor: Elemento que presta el servicio solicitado por los clientes.
Cola: Elementos esperando recibir servicio.
Sistema: Incluye cola, servidor y el elemento que est siendo servido.
Cadena: Nmero de lneas de cola del sistema. Los sistemas de colas son mono
o multicadenas. En los casos ms simples el nmero de cadenas es el nmero de
servidores en paralelo.
Nmero de fases: Es el nmero de servicios diferentes que hay que esperar antes de
8.2. TERMINOLOGA 199
Figura 8.2: Distintos tipos de sistemas de colas
200 TEMA 8. TEORA DE COLAS
(b)
(c)
(d)
(a)
Figura 8.3: Modelos de sistemas de colas.
completar el servicio total. En los casos ms simples es el nmero de servidores en
serie.
Con objeto de claricar estos ltimos conceptos proponemos los siguientes ejem-
plos. En la gura ?? pueden verse esquemas de cada uno de estos modelos.
(a) Una cadena y una sola fase: Una taquilla de un cine
(b) multi-cadena y una sola fase: Cajeros en un banco.
(c) Una cadena y multi-fase: Una lnea de montaje con distintos elementos que
hay que fabricar.
(d) multi-cadena y multi-fase: Automviles esperando paso en distintos sem-
foros.
:
8.2.2 Caractersticas de funcionalidad
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.
8.2.3 Parmetros de los sistemas de colas
Si la cola es de comportamiento aleatorio no podemos saber exactamente la situacin
que tendremos en cada momento. Por eso para describir su comportamiento se em-
plean promedios y probabilidades. Entre los parmetros ms usuales consideraremos
los siguientes:
Probabilidad de que no haya elementos en la cola.
Probabilidad de que haya un cierto nmero de unidades en el sistema.
Probabilidad de que un elemento que llega tenga que esperar para recibir servicio.
Nmero promedio de elementos en cola.
Nmero promedio de elementos presentes en el sistema.
Tiempo medio que ha de esperar cada elemento que accede a la cola.
Tiempo promedio que un elemento pasa en el sistema.
8.3 Modelos de llegadas y de tiempo de servicio
Los clientes o elementos pueden acceder al sistema de una forma determinada de
antemano porque se sabe exactamente cuando van a venir cada uno de ellos (por
ejemplo a intervalos de tiempo de 3 segundos) o bien, puede ocurrir que los intervalos
de llegada sigan una variable aleatoria, es decir, que aunque no sepamos exactamente
en qu momento va a llegar cada uno de los elementos, si conocemos la distribucin
de probabilidad de los intervalos de tiempo entre llegadas consecutivas. En el primer
caso hablamos de distribucin de llegada determinista, en el segundo decimos que
los tiempos de llegada siguen una distribucin aleatoria.
La distribucin que se usa ms frecuentemente para modelar los intervalos de
tiempos entre dos llegadas consecutivas es la distribucin exponencial. Suponemos
que en un instante slo puede haber una llegada. Notamos por t
i
la hora a la que
llega el cliente i, y por T
i
= t
i+1
t
i
el tiempo transcurrido entre dos llegadas
consecutivas. Suponemos que los valores de T
i
son independientes, que T
i
es una
variable continua y que el estado es estacionario, es decir, admitimos la hiptesis de
que la distribucin que modela la cola (probabilidad de que haya un cierto nmero
de elementos en la cola) es la misma a todas las horas del da. Normalmente esto no
es estrictamente cierto, pero puede cumplirse aproximadamente considerando ciertos
intervalos horarios cada da.
Si admitimos el modelo exponencial para la distribucin de la variable aleatoria
T
202 TEMA 8. TEORA DE COLAS
f(t) = exp(t) ; > 0, t > 0
la probabilidad de que una llegada ocurra en un tiempo t < c unidades despus que
la anterior es:
P (t < c) =
c
_
0
f(t) dt =
c
_
0
exp(t) dt
Se puede comprobar que la media de esta distribucin es 1/, y la varianza
1

2
.
El parmetro hay que interpretarlo como el nmero promedio de elementos que
llegan al sistema por unidad de tiempo.
Ejemplo 85 El nmero promedio de llegadas por hora al consultorio de un hospital
es de 60 pacientes. Si acaba de llegar un paciente, cul es la probabilidad de que el
siguiente venga dentro del siguiente minuto. Y de que tarde ms de 4 minutos?
Tomamos para =
60 pacientes
hora
=
60 pacientes
60 minutos
= 1
paciente
minutos
P (t < 1) =
1
_
0
e
t
dt = e
t

1
0
= 1 e
1
= 0.632;
P (t > 4) =

_
4
exp(t) dt = 0 (e
4
) = 0.0183.
Es conveniente resaltar que la distribucin exponencial cumple la siguiente relacin
P (t h) = P (t c +h/t c) .
Esta propiedad signica que en todo momento, la probabilidad de que el siguien-
te elemento venga en un intervalo de h segundos no depende del momento concreto,
c, sino exclusivamente del intervalo de tiempo, h, considerado. Esta probabilidad no
cambia con el tiempo y es independiente de lo que haya pasado antes. Por eso esta
propiedad se suele enunciar diciendo que la funcin exponencial carece de memoria.
Esto quiere decir que la distribucin no guarda informacin sobre lo que ha pasado
antes de c y por tanto no se necesita tener informacin del pasado para predecir el
futuro.
8.3. MODELOS DE LLEGADAS Y DE TIEMPO DE SERVICIO 203
8.3.1 Relacin entre la distribucin de Poisson y la exponen-
cial
El siguiente teorema nos da la relacin existente entre la distribucin del intervalo
de tiempo entre llegadas (bajo la hiptesis de distribucin exponencial) y el nmero
de clientes que accede al sistema en cada intervalo de tiempo t.
Teorema 14 Los intervalos entre llegadas siguen una distribucin exponencial de
parmetro si y slo si el nmero de llegadas que ocurren en un intervalo de tiempo
t sigue una distribucin de Poisson de parmetro t.
Si la distribucin de los intervalos entre llegadas es exponecial de parmetro , y
N
t
es la variable aleatoria que indica el nmero de llegadas en el intervalo de tiempo
t, la probabilidad de que el nmero de llegadas en este intervalo sea n es:
P (N
t
= n) =
(t)
n
exp(t)
n!
, n = 1, 2, 3....
E(N
t
) = V ar(N
t
) = t
Cuando el nmero de llegadas sigue una distribucin de Poisson se cumplen las
siguientes propiedades:
a) Las llegadas ocurridas en intervalos de tiempos que no se solapan son inde-
pendientes.
b) Para intervalos pequeos de tiempo (t) la probabilidad de que una llegada
ocurra en el intervalo (t, t + t) es t +o(t)
1
.
c) La probabilidad de ms de una llegada en el intervalo t es o(t).
Ejemplo 86 El nmero de personas que entra en un comercio sigue una distribu-
cin de Poisson con una media de 30 personas por hora.
a) Hallar la probabilidad de que entren exactamente 50 personas entre las 10 a
las 12 de la maana.
b) Hallar la probabilidad de que el intervalo de tiempo entre dos llegadas est
entre 2 y 4 minutos.
a) El intervalo de tiempo es de 2 horas, por lo tanto t = 30 2 = 60
P (N
t
= 50) =
(60)
50
exp(60)
50!
= 0.02327 .
1
o(t) denota un innitsimo 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
_
2/60
30 exp(30t)dt = exp(30t)|
4/60
2/60
= exp(30t)|
4/60
2/60
= e
1
e
2
= 0.23254
Si hiciramos los clculos en minutos: Los clientes acuden a la tienda a razn
de 30/60 = 0.5 personas por minuto, as que la funcin densidad de la exponencial
asociada es 0.5 . exp(0.5t). Por tanto, la probabilidad es:
4
_
2
0.5. exp(0.5t)dt = exp(0.5t)|
4
2
= e
1
e
2
= 0.23254.
8.3.2 Otra distribucin de las llegadas. La distribucin de
Erlang
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:
f(t) =
R(Rt)
k1
exp(Rt)
(k1)!
, t 0 , donde E(t) =
k
R
y V ar(t) =
k
R
2
Si tomamos R = K, tenemos esta otra expresin para la funcin de densidad:
f(t) =
k(kt)
k1
exp(kt)
(k 1)!
, t 0 (8.1)
siendo en este caso E(t) =
1

y V ar(t) =
k
(k)
2
=
1
k
2
Si k = 1, la distribucin es una exponencial de parmetro . La representacin
grca de la funcin 8.1. puede tomar muy diversas formas para los distintos valores
de los dos parmetros, por lo que es adaptable a distintas situaciones reales. Puede
demostrarse que la distribucin de Erlang es la distribucin de la suma de k variables
exponenciales independientes de parmetro . Por tanto cuando los intervalos entre
llegadas consecutivas se modelan con una funcin exponencial de parmetro , el
intervalo entre k llegadas consecutivas sigue una distribucin Erlang de parmetros
k y .
8.4. LA NOTACIN DE KENDALL 205
8.3.3 Modelos de duracin de los servicios
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.
8.4 La notacin de Kendall
Se realiza sobre el esquema 1/2/3/4/5/6, expresando en los lugares ocupados por
los nmeros la siguiente informacin:
En el lugar del 1 se indica la distribucin de las llegadas, que se representa de la
siguiente forma:
M = intervalos entre llegadas independientes e idnticamente distribuidos (iid)
que se rigen por la distribucin exponencial.
D = iid y deterministas.
Ek = iid y Erlang con parmetro k.
GI = iid y gobernados por una distribucin general.
En lugar del 2 se indica la distribucin de los servicios: M, D, Ek o GI, con
idntico signicado que en las distribuciones de llegadas.
En el lugar 3 se indica el nmero de servidores en paralelo.
En el lugar 4 se indica la disciplina de la cola, que suele ser:
FCFS (rst come rst served), que signica que el primero que llega es el primero
en ser servido, (tambin denominada FIFO = rst in rst out).
LCFS (last come rst served), que signica que el ltimo en llegar es el primero
en ser servido, (tambin denominada LIFO = last in rst out).
SIRO (service in random order), que signica que se atiende en orden aleatorio.
GD (general queue discipline), que signica que la cola tiene una disciplina
genrica.
En el lugar 5 se indica el nmero mximo de elementos que puede admitir el
sistema (incluyendo los clientes que estn siendo atendidos).
Por ltimo en el lugar 6 se indica el nmero mximo de clientes potenciales.
206 TEMA 8. TEORA DE COLAS
Si un sistema de cola se representa con el esquema M/M/1/fcfs//signica:
que los intervalos entre llegadas consecutivas y los tiempos empleados en prestar el
servicio demandado se distribuyen con distribuciones exponenciales; que hay un solo
servidor; que la disciplina de cola consiste en atender primero al que haya llegado
antes al sistema; que el sistema puede recibir un nmero ilimitado de individuos, y
que el nmero de clientes potenciales es innito (muy grande).
8.5 Estudio de una cola M/M/1
Sobreentenderemos en este caso que la cola es del tipo M/M/1/fcfs/ / .
Llamaremos Estado del sistema en t al nmero de elementos presentes en el
instante de tiempo t. Para t = 0, el estado del sistema sera el nmero de elementos
que estn en el sistema inicialmente. Suponemos tambin que el sistema ha llegado
al Estado Estacionario, que se caracteriza porque la probabilidad de cada estado
no vara con el tiempo. Llamaremos P
j
a la probabilidad de que el sistema est en
el estado j. Tambin puede interpretarse como la fraccin de tiempo en que hay
j elementos en el sistema.
Un sistema de colas M/M/1/fcfs// sigue las leyes siguientes:
1. La probabilidad de un llegada entre t y t + t, puede darse por t +
o(t). Una llegada incrementa el estado del sistema en 1.
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.
3. Las llegadas y salidas son sucesos independientes.
4. El Estado Estacionario se alcanza si < , siendo y respectivamente
las tasas de llegada y servicio (nmero de llegadas o servicios por unidad de
tiempo).
5. Dos o ms sucesos (llegadas o salidas) no pueden ocurrir simultneamente (esto
es una forma de decir que la probabilidad de ocurrencia de ms de un suceso
en el tiempo t es un innitsimo de orden superior a t).
8.5.1 Probabilidad de que el sistema est en cierto estado
Para calcular la probabilidad de que el sistema est en el estado j en el instante
t + t, calculamos esta probabilidad a partir de su estado en el tiempo t.
Vamos a desarrollar primero el caso de P
0
(t+t) = Probabilidad de que no haya
nadie en el sistema en el instante t + t. Se dar esta circunstancia en uno de los
supuestos siguientes:
8.5. ESTUDIO DE UNA COLA M/M/1 207
1. No haba nadie en el sistema en el instante t y no ha venido nadie en este
intervalo.
La probabilidad de que ocurra este supuesto es
P
0
(t) (1 t +o(t)).
2. Haba 1 elemento en el instante t, no ha venido nadie en ese intervalo y se ha
ido el que estaba.
La probabilidad es ahora:
P
1
(t) (t +o(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
P
0
(t +t) = P
0
(t) (1 t +o(t)) +P
1
(t) (t +o(t))(1 t +o(t)) +
o(t)
P
0
(t + t) = P
0
(t) (1 t +o(t)) +P
1
(t) (t +o(t)) +o(t)
P0(t+t)P0(t)
t
= P
0
(t) +P
1
(t) +
o(t)
t
.
Si t 0 obtenemos en el primer miembro la derivada de P
0
(t) . Si considera-
mos que estamos en Estado Estacionario P
0
es constante, y por tanto su derivada es
0. El ltimo sumando del segundo trmino tambin tiende a 0 puesto que el orden
del numerador es mayor que el del denominador (el numerador tiende a cero ms
rpidamente que el denominador). Por tanto ha de cumplirse cuando t 0:
0 = P
0
+P
1
,
de donde se deduce que
P
1
=

P
0
= P
0
En el caso general, tras agrupar todos los innitsimos de orden superior a t
se tiene:
P
j
(t) (t + t) = P
j1
(t) (t))(1 t) +Pj(t) (1 t)(1 t)+
+P
j+1
(t)(t)(1 t) +o(t).
208 TEMA 8. TEORA DE COLAS
Procediendo de forma anloga a la empleada para obtener la expresin de P
1
se
obtiene:
P
j
( +) = P
j1
+P
j+1
En concreto si j = 1
P
1
( +) = P
0
+P
2
Sustituyendo P
1
=
P
0

obtenemos :
P0

( +) = P
0
+P
2
y despejando P
2
P
2
=

2
P
0

2
=
2
P
0
Por induccin, se obtendra para el estado j :
Pj =

j
P
0

j
Como los posibles estados del sistema son: 0, 1, 2, 3,...

i=0
P
i
= 1 = P
0
+P
0
+
2
P
0
+.... = P
0
(1 + +
2
+....) = P
0
_
1
1
_
La serie representa la suma de los trminos de una progresin geomtrica de
razn . Si el estado es estacionario =

< 1 y en este caso


1 + +
2
+.... =
1
1
Luego
P
0
_
1
1
_
= 1
de donde se deduce que P
0
= 1 , y por tanto
P
j
= (1 )
j
8.6. TEOREMA DE LITTLE 209
8.5.2 Nmero medio de elementos en el sistema
Para calcular L, nmero medio de elementos en el sistema, usamos el concepto de
esperanza matemtica
L = E(j) =

j=0
jP
j
=

j=0
j(1 )
j
= (1 )

1
j
j
= (1 )S
siendo S =

1
j
j
y j la variable aleatoria que denota el nmero de elementos en el
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
8.5.3 Nmero medio de elementos en cola
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
L
q
= 0 (P
0
+P
1
) + 1P
2
+ 2P
3
+ 3P
4
+...=

j=1
(j 1)P
j
=

j=1
(j 1)(1 )
j
=
= (1 )

1
(j 1)
j1
= (1 )S =

2
1
.
El nmero de elementos recibiendo servicio, es la diferencia entre los que estn
en el sistema y los que estn en la cola. Su valor medio, L
s
, es por tanto
L
s
= L L
q
=

1


2
1
=
(1 )
1
=
Este valor, , tambin puede interpretarse como la fraccin de tiempo en que el
servidor est ocupado.
8.6 Teorema de Little
Para cualquier sistema de colas en estado estacionario se verica:
L = W, L
q
= Wq, L
s
= Ws
210 TEMA 8. TEORA DE COLAS
Donde las W son, respectivamente, los tiempos medios de espera en el sistema,
en cola y recibiendo servicio.
Explicacin intuitiva: Supongamos que llega al sistema un elemento que per-
manece en ste exactamente el tiempo promedio W. Cuando este cliente salga del
sistema permanecen an en l los elementos que han llegado detrs durante el inter-
valo de tiempo W. Por promedio su nmero ser W, puesto que es el nmero de
llegadas por unidad de tiempo, es decir L = W.
Usando el teorema de Little se pueden obtener expresiones para los tiempos
medios de estancia en el sistema, en la cola o recibiendo servicio.
W =

1

=
1

,
W
q
=

2
1

=
(

)
2
1

=

( )
W
s
=
Ls

=
1

Ejemplo 87 En un aeropuerto el nmero de personas que accede por minuto es 10.


Las revisiones de equipaje se realizan a razn de 12 por minuto. Responder a las
siguientes cuestiones:
1. Cul es la probabilidad de que un pasajero tenga que esperar antes de que le
revisen el equipaje?
2. Por trmino medio, cuntos pasajeros esperan en cola?
3. Cunto tiempo total tienen que esperar los pasajeros por trmino medio?
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 P
0
= 1 (1 ) = = 10/12 = 0. 833 333.
2. L
q
=

2
1
=

2
( )
=
10
2
12(12 10)
= 4.16 667 es el nmero medio de
individuos en la cola.
3. W =
1

=
1
12 10
= 0.5 minutos tendrn que esperar los pasajeros por
trmino medio.
8.7 Sistemas con capacidad limitada
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
P
j
=

j
P
0

j
si 0 < j c
P
j
= 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

i=0
P
i
= 1 = P
0
+P
0
+
2
P
0
+.... +
c
P
0
= P
0
_

c+1
1
1
_
si = 1
Esta expresin, slo es vlida si = 1, es decir, no es igual que . En este
caso, despejando P
0
, obtenemos que
P
0
=
1

c+1
1
y P
j
=
(1)
(
c+1
1)

j
Por tanto
L = E(j) =
c

j=0
jP
j
=
c

j=0
j
j 1

c+1
1
=
(1)

c+1
1
c

1
j
j
=
(1)

c+1
1
S

siendo j el nmero de elementos en el sistema y S

c
1
j
j
S

=

c+1

1
c
c+1
luego
S

=

c+1
c
c+2
+c
c+1
(1)
2
,
y por tanto
L =
(c+1)
c+1
+c
c+2
(1)(
c+1
1)
El nmero de medio de elementos recibiendo servicio es :
L
s
= 0 P
0
+ 1(P
1
+P
2
+... +P
c
) = 1 P
0
212 TEMA 8. TEORA DE COLAS
El nmero medio de elementos en la cola, L
q
se puede hallar restando las expre-
siones L y L
s
y obtenemos L
q
= L L
s
.
En el caso particular de ser = 1 , o = , teniendo en cuenta la expresin
anterior P
j
=

j
P0

j
se deduce que todos los estados tendran la misma probabilidad,
P
0
, as que 1 = (c + 1)P
0
y por tanto
P
0
=
1
c+1
= P
1
= P
2
= P
3
= ... = P
c
L = 0 P
0
+ 1P
1
+ 2P
2
+... +cP
c
) =
= P
0
(1 + 2 + 3 +.... +c) = P
0
1+c
2
c =
1
c+1
1+c
2
c =
c
2
Para cualquier sistema de colas en estado estacionario se verica el teorema de
Little:
L = W, Lq = Wq, Ls = Ws
No obstante, debe sustituirse en este caso por la tasa media real de llegada
(
R
) , que ser menor que , puesto que est limitada la auencia 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 P
c
ya que P
c
se puede interpretar como la
proporcin de llegadas por unidad de tiempo que no ingresan en el sistema. Es decir
que:

R
= P
c
Por tanto en este caso de sistemas con capacidad limitada se tiene:
L = (1 P
c
) W, L
q
= (1 P
c
) W
q
, L
s
= (1 P
c
) W
s
Ejemplo 88 La auencia de clientes a una peluquera es, por termino medio, de
20 clientes por hora. El peluquero admite en su peluquera un mximo de 10 clientes
y tarda en atenderlos un promedio de 12 minutos por cliente. Calcular: a ) Nmero
promedio de clientes atendidos por hora. b) Nmero medio de personas en la pelu-
quera. c) Cul es el tiempo medio de permanencia en la peluquera para los clientes
que entran?
a) Todos los clientes que entran son atendidos, por lo tanto coincide con la tasa
real de llegadas a la peluquera. (1 P
c
) = 20(1 P
10
), P
j
=
(1)
(
c+1
1)

j
, as que
P
10
=
(41)
(4
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
b) Para determinar el nmero medio de clientes en la peluquera, calculamos:
=

=
20
5
= 4
L =
(c+1)
c+1
+c
c+2
(1)(
c+1
1)
=
4(11) 4
11
+104
12
(41)(4
11
1)
= 9.67
Por lo que el nmero medio de clientes en la peluquera es 9.67 clientes.
c) El tiempo medio de espera en el sistema ser:
L
20(1 P
10
)
= 9.67/5 = 1.93 horas.
8.8 Modelo con s servidores
Desarrollamos detalladamente el caso en que s = 2, omitiendo los innitsimos de
orden superior a t.
8.8.1 Clculo de la probabilidad de los diferentes estados del
sistema
Tambin ahora se cumple para el estado 0 que
P
0
(t + t)=P
0
(t)(1 t) +P
1
(t)t(1 t)
Si el estado del sistema es estacionario (se puede conseguir el estado estacionario
para el caso de 2 servidores si < 2 y en general si < s), P
0
es constante, y
por tanto la derivada es 0 , as que
P
0
= P
1
y por tanto
P
1
=
P
0

Para el estado 1 se cumple:


P
1
(t + t) = P
0
(t)t +P
1
(t)(1 t))(1 t) +P
2
(t)2t(1 t)
Procediendo anlogamente a lo hecho en el caso anterior, se iguala a 0 la derivada
de P
1
(t)) y se, sustituye el valor de P
1
obtenido. De esta forma se obtiene:
214 TEMA 8. TEORA DE COLAS
P
0


2
P
0

P
0
+ 2P
2
= 0
y despejando P
2
:
P
2
=

2
P0
2
2
=
1
2

2
P
0
Para obtener un expresin similar para P
3
, se parte de la expresin:
P
2
(t + t) =
= P
1
(t)t(1 t) +P
2
(t)(1 t)(1 2t) +P
3
(t)2t(1 t)
P
1
( +) P
2
+ 2P
3
= 0
Sustituyendo los valores anteriores para P
1
y P
2
, obtenemos:
P
3
=

3
P0
4
3
=
1
4

3
P
0
.
En general, para el caso de dos servidores
P
j
=

3
P0
4
3
=
1
2
j1

j
P
0
si j = 0.
8.8.2 Clculo de P
0

i=0
P
i
= 1 = P
0
+P
0
+
1
2

2
P
0
+.... +
1
2
j1

j
P
0
+... =
= P
0
_
1 + +
1
2

2
+.... +
1
2
j1

j
+...
_
El parntesis, omitiendo el primer trmino, es la suma de los innitos trminos
de una progresin geomtrica de razn

2
que es menor que 1, ya que para el estado
estacionario < 2. Realizando la suma de la serie se obtiene
P
0
_
1 +

1

2
_
= P
0
_
2 +
2
_
= 1
entonces
P
0
=
2
2 +
.
Por tanto:
P
j
=
1
2
j1

j
P
0
=
1
2
j1

j
2
2 +
.
8.8. MODELO CON S SERVIDORES 215
8.8.3 Clculo de los parmetros
El nmero medio de elementos en cola es
L
q
= 0(P
0
+P
1
+P
2)
+ 1P
3
+ 2P
4
+. . . =

j=1
jP
j+2
=

j=1
j
1
2
j+1

j+2
P
0
=
= P
0

2
2

j=1
j
_

2
_
j
= P
0

2
2

2
(1

2
)
2
= P
0

3
(2+)
2
=

3
(2+)
2
2
2 +
=

3
(2+)(2+)
=

3
4
2
En el sumatorio se ha sustituido una expresin hallada previamente en 8.5.2
(tomando

2
en lugar de )
L
s
= 0.P
0
+ 1.P
1
+ 2(P
2
+P
3
+P
4
+...) = P
1
+ 2(1 P
0
P
1
) =
=
2
2 +
+ 2
_
1
2
2 +

2
2 +
_
=
Intuitivamente podamos tambin argumentar que la mitad de las llegadas iran a
parar a cada uno de los servidores, ya que los clientes entran en uno u otro servidor.
En ese caso la media de clientes atendidos por cada uno sera

2

=
1
2

=
1
2
. Por
tanto entre ambos atenderan una media 2
1
2
= .
Para calcular el nmero promedio de elementos en el sistema empleamos la si-
guiente expresin:
L = L
q
+L
s
=

3
4
2
+ =
4
4
2
.
Para calcular los tiempos medios se pueden emplear las frmulas de Little:
W
q
=
L
q

, W =
L

, W
s
=
L
s

=
1

8.8.4 Sistemas de colas de tipo M/M/s/FCFS//. Expre-


siones para el caso de s servidores
P
0
=
1

s1
i=0

i
i!
+

s
s!(1

s
)
P
j
=
_

j
j!
P
0
si j = 1, 2, 3, . . . , s

j
s!s
js
P
0
si j s
216 TEMA 8. TEORA DE COLAS
L
q
=

s+1
s s!
_
1

s
_
2
P
0
Se pueden aplicar tambin las frmulas de Little:
W
q
=
L
q

L
s
= W
s
=
L
s

L = L
q
+L
s
W =
L

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.
En este caso = 80 clientes por hora y = 60/1.2 = 50 clientes por hora es
capaz de atender cada uno de los dos servidores.
a) El nmero medio de clientes en el banco es
L =
4
4
2
=
4
80
50
4(
80
50
)
2
=
6.4
1. 44
= 4. 444 4
b) El tiempo medio de espera en el banco es
W =
L

=
4. 444 4
80
horas = 5. 555 5 10
2
horas = 3.33 minutos
c) La probabilidad de que un determinado cajero est desocupado es:
P
0
+ 0.5P
1
=
2
80
50
2+
80
50
+ 0.5
80
50

2
80
50
2+
80
50
= 0. 111 11 + 8. 888 9 10
2
= 0. 2,
as que la probabilidad de que ese cajero est ocupado es 1 0.2 = 0. 80.
Si se pidiera la probabilidad de que al menos uno de los cajeros est desocupado
(sin concretar quin) se calculara como:
P
0
+P
1
=
2
80
50
2+
80
50
+
80
50

2
80
50
2+
80
50
= 0. 288 89.
8.9 El coste de un sistema de colas
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).
1. Caso de emplear slo un servidor:
El nmero medio de trabajadores en el sistema es
L =

1
=

=
15
1815
= 5.0
Coste por hora = 5 10 + 9 1 = 59 u.m.,
ya que si por trmino medio hay 5 trabajadores en el sistema supone un gasto
de 510 =50 u.m. por hora, a lo que hay que aadir el gasto del servidor que
es 9 u. m. por hora.
2. Caso de dos servidores:
L =
4
4
2
=
4
15
18
4(
15
18
)
2
= 1. 008 4
Coste por hora = 1.008 10 + 9 2 = 28. 08 u.m.
3. Caso de 3 servidores:
P
0
=
1

s1
i=0

i
i!
+

s
s!(1

s
)
=
1

31
i=0
(
15
18
)
i
i!
+
(
15
18
)
3
3!

1
(
15
18
)
3

= 0. 432 13
L
q
=

s+1
s s!
_
1

s
_
2
P
0
=
_
15
18
_
3+1
3 3!
_
_
_1

15
18

3
_
_
_
2
0.43213 =
=
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
4. Con ms de tres servidores el gasto es siempre superior a 9 4 = 36 u.m., ya
que ste es el gasto del sueldo de 4 servidores.
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
9.1 Simulacin. Generalidades
La Simulacin es una tcnica para el anlisis y estudio de sistemas complejos. Esta
tcnica se emplea cuando, o bien no se conocen soluciones analticas del problema
planteado, o conociendo algn modelo analtico su aplicacin al estudio de dicho
problema impone demasiadas simplicaciones a la realidad, por lo que la solucin
obtenida se va a apartar sustancialmente de la verdadera.
La simulacin pretende imitar el comportamiento del sistema real, evolucionando
como ste. Lo ms frecuente es estudiar la evolucin del sistema en el tiempo. Para
ello se formula un modelo de simulacin que tiene en cuenta los elementos que vamos
a considerar del modelo real y las relaciones entre estos. Una vez determinados los
objetos y las relaciones que vamos a tomar en consideracin, se formula la evolucin
del sistema por medio de un algoritmo. Este algoritmo, establecido el estado inicial
del sistema, ha de permitir generar muestras simuladas de su comportamiento. Son
estas muestras las que se usan para estudiar el problema tratado y dar una solucin
aproximada de ste. Por lo general estos algoritmos se implemetan en un lenguaje de
programacin. Ejecutando el programa obtenido las veces deseadas se puede obtener
tantas muestras del comportamiento del sistema como queramos. Estas muestras
nos permiten obtener estimaciones cada vez ms prximas a la realidad, siempre que
el modelo la reeje adecuadamente.
Entre los muchos problemas a los que se han aplicado tcnicas de Simulacin
citamos los siguientes.
1) Simulacin del traco de vehculos en cruces de vas con mucho trco con el
objeto de estudiar si la colocacin de nuevas seales de trco o de determinadas
modicaciones en el ujo de vehculos mejoraran o empeoraran la circulacin.
2) Simulacin de la conducta de un modelo de inventarios. Es decir se pretende
determinar la ganancia que se obtendra si los pedidos de las diferentes mercancas
219
220 TEMA 9. INTRODUCCIN A LA SIMULACIN
de un comercio se realizaran en determinada cantidad y se usaran ciertos criterios
para determinar los momentos ms convenientes para efectuar estos pedidos. El
objetivo es realizar esta operacin de la forma ms conveniente para el comerciante.
3) Simulacin de los movimientos ssmicos con el objeto de actuar de la mejor
forma posible para paliar los efectos de estos fenmenos.
4) Simulacin de las condiciones de vuelo de los aviones con el objetivo de entrenar
a los futuros pilotos.
5) Simulacin de las urgencias clnicas que suelen producirse en una ciudad con
el objetivo de gestionar los recursos de los servicios de urgencia de manera ptima.
Ventajas y desventajas de la simulacin:
Ventajas:
a) Modelos ms fciles de aplicar, por lo que se pueden acometer problemas ms
complejos sin imponer demasiadas simplicaciones, acercndonos ms al problema
real.
b) Una vez que el modelo se ha construido sirve para estudiar distintas estrategias
y para determinar todos los parmetros del sistema. En un modelo analtico la teora
y el desarrollo puede ser distinta para cada parmetro a determinar.
c) Facilidad de experimentacin, con el consiguiente ahorro econmico. Adems
las pruebas estn libres de las posibles situaciones de peligro que son inherentes a
algunas situaciones reales.
Desventajas:
a) Son generalmente ms lentos que los clculos analticos
b) Suelen ser mtodos que dan soluciones aproximadas.
De todas formas no se debe establecer una competencia entre modelos analticos
y simulados. Por lo general han de complementarse mutuamente.
Desarrollamos a continuacin un sencillo ejemplo que nos va servir para mostrar
de una forma simple en qu consiste esta tcnica de Simulacin.
9.2 Un ejemplo muy sencillo
Ejemplo 91 Consideramos el caso de una cadena de tiendas que se dedica a vender
pescado por cajas. Por experiencia se sabe que la demanda es de 3 a 8 cajas diarias.
Cada una de estas cajas se compra por 25 euros y se vende en 40 euros, pero las cajas
que no se vendan al nal del da, hay que venderlas en unas drsticas rebajas, a 10
euros cada una. Si la demanda supera a la oferta suponemos que hay una prdida de
15 euros por cada unidad que no se puede ofrecer al cliente (en concepto de perdida
de prestigio, fuga de clientes a otras tiendas, etc..). Se sabe que la demanda se puede
clasicar en alta media y baja, con probabilidades 0.3, 0.45 y 0.25 respectivamente.
9.2. UN EJEMPLO MUY SENCILLO 221
La distribucin de la demanda por categoras aparece en la tabla:
Demanda Alta (0.3) Media (0.45) Baja (0.25)
3 0.05 0.10 0.15
4 0.10 0.20 0.25
5 0.25 0.30 0.35
6 0.30 0.25 0.15
7 0.20 0.10 0.05
8 0.10 0.05 0.05
Por ser un producto perecedero, el comerciante ha decidido adquirir diariamente 5
cajas. Se desea simular el comportamiento de la demanda durante 10 das calculando
la ganancia media por da y determinar el nmero ptimo de cajas que se deben
adquirir diariamente para maximizar los benecios. Cmo se puede resolver este
problema por simulacin?
Con el objeto de ilustrar el procedimiento vamos a hacer una simulacin manual,
es decir sin emplear ordenador. Para ello generamos nmeros aleatorios. Los orde-
nadores tienen una funcin para generar estos nmeros, pero como de momento no
vamos a emplear ordenador puede emplearse una tabla de nmeros aleatorios o una
lista de premios de la lotera. Tambin podemos recurrir a realizar un sorteo con
un juego de Bingo. Necesitamos una secuencia de 20 nmeros, diez para generar el
tipo de demanda de cada uno de los diez das y otros diez para generar la cantidad
demandada. Vamos a utilizar los siguientes, que se han obtenido con una tabla de
nmeros aleatorios comprendidos entre 00 y 99.
69 56 30 32 66 79 55 24 80 35 10 98 92 92 88 82 13 04 86 31
Para respetar los valores de la probabilidad indicada en la tabla anterior realiza-
mos la siguiente asignacin, haciendo corresponder a cada probabilidad una cantidad
de nmeros proporcional a sta.
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.
DIA:
Compra al
principio
del da
Sorteo tipo
de demanda
Sorteo
demanda
Ganancia 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
Sumando la ganancia obtenida en estos diez das y dividiendo por el nmero de
estos se obtiene la ganancia diaria media:
Media = 490/10 = 49 euros por da
De momento hemos realizado la simulacin con un pedido de 5 cajas durante 10
das. Si queremos responder a la pregunta de cul es la cantidad de cajas por pedido
que produce a la larga una ganancia mxima, podemos actuar de forma similar a
como hemos hecho para el pedido de 5 cajas con todas las cantidades razonables de
pedido (de 3 a 8 cajas son las demandas posibles). Es conveniente no obstante hacer
simulaciones ms largas, para que el valor medio de la ganancia sea ms estable.
Por ejemplo, podamos hacer la simulacin durante un ao (365 das). En este caso
la simulacin manual, que hemos realizado anteriormente sera demasiado laboriosa.
Por eso las simulaciones se realizan frecuentemente en ordenador.
El algoritmo que hay que implementar puede resumirse de la siguiente forma:
Para cada pedido (3 a 8)
Para cada da (1 a 365) se realizan los siguientes pasos:
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
Generar la demanda del da seleccionando el valor correspondiente
segn los valores indicados en la tabla, en la columna que corresponde
al tipo de demanda obtenida en el Paso 1.
paso 3
Se calcula el benecio que corresponde a este da.
Se calcula la media de los benecios obtenidos en los 365 das.
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
pedido
3 4 5 6 7 8
Benecio
medio
10.119 36.04 53.71 58.56 51.70 39.78
Estos resultados nos permiten decidir que un pedido de 6 cajas diarias es el que
reportara mayor benecio diario medio.
9.3 Mtodo Montecarlo
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 clasicarse en dos tipos: probabilistas y de-
terministas.
224 TEMA 9. INTRODUCCIN A LA SIMULACIN
En el Montecarlo probabilista se simulan con nmeros aleatorios fenmenos que
son aleatorios en la realidad. Los nmeros se eligen de tal forma que reproduzcan la
distribucin de probabilidad de la poblacin estudiada y, de su observacin, se de-
ducen caractersticas de sta. Por ejemplo, la Fsica Nuclear suministra las funciones
que rigen el movimiento de los neutrones. Reproduciendo estas leyes con nmeros
aleatorios se puede simular un reactor nuclear y experimentar con l, evitando los
problemas de dinero, tiempo y seguridad que implicara la experimentacin con un
reactor nuclear verdadero.
En el Montecarlo determinista se resuelven problemas que no son aleatorios en la
realidad, asocindolos con algn experimento aleatorio diseado expresamente con
este propsito. Un ejemplo de este tipo es el clculo numrico de integrales denidas.
9.4 Notas histricas sobre el Mtodo Montecarlo
El nombre y el comienzo del desarrollo sistemtico del mtodo Montecarlo datan
aproximadamente de 1944, poca en la que se realizaron las investigaciones rela-
cionadas con las primeras bombas atmicas. En tales investigaciones, llevadas a
cabo principalmente en el laboratorio americano de Los lamos, los procesos de ab-
sorcin de neutrones se simularon mediante un conjunto de ruletas adecuadamente
graduadas, que originaron el nombre de Montecarlo con el que Von Neuman y sus
colaboradores designaron a esta tcnica.
Sin embargo, ya desde el siglo XVIII es posible encontrar algunos vestigios de
las ideas que subyacen en el mtodo Montecarlo. En 1777 el conde de Buon hizo
un estudio del juego siguiente, de moda por aquella poca: una aguja de longitud
L se arroja sobre un plano en el que hay dibujadas varias rectas paralelas con una
distancia d (d > L) entre ellas. Se gana si la aguja cae sobre alguna de las rectas
paralelas. El conde de Buon determin la probabilidad (P) de ganar experimen-
talmente (a base de tirar la aguja una gran cantidad de veces), y analticamente,
calculando para P la expresin:
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 coeciente 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 eciencia 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 orecimiento.
9.5 Generacin de nmeros aleatorios
Ya que casi siempre la simulacin es aleatoria normalmente necesitamos un genera-
dor de estos nmeros. Los ordenadores suelen tener un comando para generarlos.
Con el nombre de nmeros aleatorios designamos, en esta ocasin, a las muestras
procedentes de una distribucin uniforme en el intervalo [0,1].
Los mtodo de generacin de nmeros aleatorios pueden clasicarse en las cate-
goras siguientes:
a) Mtodos manuales: Loteras, Ruletas. Suelen ser lentos y no reproducibles.
Durante bastante tiempo se crey que era el nico procedimiento para producir
verdaderos nmeros aleatorios.
b) Mtodos analgicos. En este caso los nmeros se obtienen de algn experi-
mento fsico que pueda recibirse en el ordenador. Se pueden generar rpidamente,
pero no son reproducibles.
c) Tablas de nmeros aleatorios: Es el procedimiento que hemos empleado en el
ejemplo. Es un procedimiento lento y presenta el inconveniente de que la tabla puede
ser insuciente para una simulacin larga. La primera tabla de nmeros aleatorios
fue preparada por Tippett (1927). Un mtodo que se ha usado es preparar la tabla
y almacenerla en la memoria del ordenador. En 1955 se public la Tabla de la
Rand Corporation con un milln de dgitos. Para realizar estas tablas se usaron
mtodos analgicos: los datos se extrajeron del ruido de un generador de pulsos
electrnicos.
d) Algoritmos para ordenador. Estos mtodos estn basados en generar nmeros
usando un programa de ordenador. El algoritmo usado es determinstico, as que
estrictamente hablando los nmeros generados no seran aleatorios, pero se compor-
tan como si lo fueran ya que cumplen los test de independencia y de aleatoriedad,
as que se pueden usar en lugar de stos. Se conocen con el nombre de nmeros
pseudoaleatorios.
226 TEMA 9. INTRODUCCIN A LA SIMULACIN
9.5.1 Propiedades de un buen generador de nmeros aleato-
rios
Un generador de nmeros aleatorios debe tener las propiedades siguientes:
a) Debe generar nmeros aleatorios (uniformemente distribuidos e independien-
tes).
b) Debe generarlos rpidamente.
c) No debe requerir mucho lugar de almacenamiento en el ordenador.
d) No debe formar en ciclos, o al menos que los ciclos sean de periodo sucien-
temente largo.
f) La secuencia de nmeros ha de ser reproducible. Es decir que se pueda repe-
tir, si se considera conveniente, una secuencia de nmeros que se haya producido
anteriormente. De esta forma se podra repetir exactamente cualquier prueba ya
realizada. En los programas de ordenador esto se consigue usando la misma semilla
(nmero que inicializa el algoritmo).
9.5.2 Mtodo del centro del cuadrado
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 5232
2
=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.
9.5.3 Mtodo de las congruencias
Fueron sugeridos por Lehmer en 1949. Se basan en calcular los residuos mdulo m
de una transformacin lineal.
La relacin de congruencia fundamental es:
X
i+1
(aX
i
+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 X
0
, 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 X
0
= 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
Por supuesto elegimos m tan grande como podamos. Si p es el periodo y p = m
la sucesin se llama de periodo completo.
Puede demostrarse que una sucesin es de periodo completo si y solo si
a) c y m son primos entre s.
b) a 1(mod g), siendo g cualquier factor primo de m.
c) a 1 (mod 4), si m es mltiplo de 4.
m estar limitado por el ordenador . Si este es binario m = 2

como mximo,
donde depende del ordenador ( = longitud de la palabra ms larga 1).
Se consigue una sucesin de 2

elementos tomando c impar y


a 1(mod 4).
Los valores m = 2
35
, a = 2
7
+1 y c = 1 dan buenos resultados para un ordenador
cuya palabra mxima tenga 36 bits.
El caso particular de que c sea nulo se habla de un generador multiplicativo.
X
i+1
(aX
i
) (mod m)
En este caso no puede obtenerse un periodo completo.
Los mtodos congruenciales tienen la ventaja de ser muy rpidos y ocupar poca
memoria, dar nmeros que soportan bien los test de adherencia de ajuste. Sin em-
bargo suelen presentar problemas de autocorrelacin. Tambin se observa que los
ltimos dgitos no siguen una distribucin uniforme. Estos problemas suelen ar-
reglarse con rutinas que hacen algunas modicaciones a los mtodos congruenciales:
usar las primeras cifras, barajar los nmeros, formar un nmero de varias cifras
uniendo las primeras de varios nmeros generados anteriormente, etc. Rutinas de
este tipo son las incluidas en el captulo 7 de Numerical Recipes. La ltima de
ellas Ran3 de Knuth es una buena rutina de generacin de nmeros aleatorios. La
mostramos a continuacin.
C -
C SUBPROGRAMA RND
C CALCULA UN NUMERO ALEATORIO COMPRENDIDO ENTRE 0 Y 1
C MIDUM = SEMILLA DE CUATRO CIFRAS -
C TOMADA DE LA PAG 199 DE *NUMERICAL RECIPES* -
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)
DATA IFF /0/
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
9.6 Mtodo de la transformacin inversa
Los nmeros generados por la funcin RANDOMIZE (o anlogas) de los ordenadores
siguen una distribucin uniforme, es decir cualquier nmero, en el intervalo conside-
rado, tiene la misma probabilidad de ser generado. No obstante, a veces queremos
generar nmeros cuya distribucin de probabilidad no sea uniforme. Para ello hay
una gran variedad de mtodos. Describimos nicamente el mtodo llamado de la
transformacin inversa.
Si queremos generar valores de una variable aleatoria, con funcin densidad
f(x) > 0, se usa el hecho conocido de que si denotamos su funcin de Distribu-
cin por F(x), F() = se distribuye uniformemente en el intervalo (0,1).
Por lo tanto se pueden generar nmeros aleatorios uniformemente distribuidos
en (0,1) actuando del modo siguiente:
a) Se generan valores de con una distribucin uniforme en el intervalo (0,1).
b) Se calcula el nmero generado con la relacin = F
1
().
Este mtodo presenta dos dicultades de tipo prctico: Calcular y resolver la
ecuacin F() = , lo que, en muchos casos, no es tarea fcil.
9.6.1 Mtodo de la transformacin inversa aplicado a la dis-
tribucin exponencial
En este caso el mtodo anteriormente descrito es de fcil aplicacin. Mostramos la
forma de generar muestras procedentes de una distribucin eponencial.
La funcin de densidad es f(x) = h.exp(hx) :
F(x) =
_
x
0
h.exp(hx)dx = = 1 exp(hx) donde U[0, 1]
Despejando x se obtiene:
230 TEMA 9. INTRODUCCIN A LA SIMULACIN
x =
1
h
L(1 ).
Como 1 sigue la misma distribucin que , tambien se puede calcular cada
elemento de la muestra usando la expresin:
x =
1
h
L.
9.7 Simulacin de una cola M/M/1
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 suciente-
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).
Comenzamos generando nmeros aleatorios. Para transformarlos en elementos
de una distribucin exponencial de los intervalos entre llegadas usaremos la trans-
formacin:

1
=
1
15
ln
1
,
expresando el intervalo entre llegadas en horas. Si se expresa en minutos sera

1
=
1
15
ln
1
60,
y para los tiempos empleados en despachar las herramientas, tambin en minutos
quedara

2
=
1
18
ln
2
60.
Si la sucesin de nmeros aleatorios que generamos para intervalos entre llegadas
es:
9.7. SIMULACIN DE UNA COLA M/M/1 231
1.8315610
2
, 4,9787110
2
, 0.22313, 4.0867710
3
y para tiempos de servicios
6.0967510
3
, 4.5165810
3
, 0.011109, 2.4787510
3
, 4.9787110
2
entonces el primer intervalo entre llegadas que se obtiene es:

1
=
1
15
ln
1
60 =
1
15
ln(1.83156 10
2
) 60 = 16.0 minutos.
Continuando las operaciones con los siguientes nmeros aleatorios obtendramos
los valores de la siguiente tabla que representa los intervalos entre llegadas consecuti-
vas y el tiempo de estancia en el servidor de los primeros elementos que van llegando
al sistema.
tiempo entre llegadas 0 16 12 6 22
tiempo de servicio 17 18 15 20 10
Para simular el sistema podemos seguir el cambio de las variables denidas en
la tabla siguiente. Cada rengln puede representar el estado del sistema. En el
ejemplo, comenzamos la simulacin (reloj a 0) con la primera llegada, aunque esto
no es imprescindible.
tipo Tiempo libre=1 ncola = tiproll = tiproser =
de de long hora hora
suceso suceso reloj ocupado=0 de la cola prx llegada prx partida
0 Inicio 0 1 0 0 9999
1 llegada 0 0 0 16 17
2 llegada 16 0 1 28 17
3 partida 17 0 0 28 35
4 llegada 28 0 1 34 35
5 llegada 34 0 2 56 35
6 partida 35 0 1 56 50
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
El algoritmo correspondiente puede seguir el diagrama de ujo de la gura 9.1
(las variables tienen el nombre y signicado descrito en las tablas).
232 TEMA 9. INTRODUCCIN A LA SIMULACIN

Tiproll duracin
y
Tiproser duracin

STOP
tiproll < tiproser
Tipo=llegada
(un individuo entra
en el sistema)
reloj =
=reloj+tiproll
Tipo=partida
(un individuo sale
del sistema)
reloj =
=reloj+tiproser
Ncola =0
Ser=0
Ser=1
Tiproser=9999
Ncola=ncola+1
Tiproser=reloj+ts
Ser=0
Tiproser=reloj+ts
Ser=0
Ncola=ncola-1
Tiproll = reloj+tell

NO SI
SI
NO
SI
NO
SI NO
Inicio
Reloj=0
N1li0oc=1
Ncola=0
Tiproll=0
Tiproser=9999
Figura 9.1: Diagrama de ujo del programa de simulacin de una cola M/M/1.
9.7. SIMULACIN DE UNA COLA M/M/1 233
9.7.1 Programa FORTRAN
c ***este programa simula una cola con una unica cadena y una sola fase
c . las demandas de servicio siguen la distribucion de poisson
c los tiempos de servicio se distribuyen con una exponencial negativa
c el modelo estima el tiempo de utilizacion del servidor, longitud media de la cola,
c numero medio de clientes en el sistema, tiempo medio de
c espera antes de recibir servicio, y la probabilidad de que haya que
c esperar para ser atendido. Esta estima cin se basa en una simulacion,
c cuya duracion es introducida como dato ***
c-
c ***informacion del modelo ***
INTEGER NLLEGA,NESPERA,NCOLA
CHARACTER*10 TIPO
OPEN(6,FILE=COLA.RES)
c
WRITE(*,*)****Introduce media de clientes que llegan por hora*****
READ(*,*)VLLPORH
WRITE(*,*) *** MEDIA DE CLIENTES ATENDIDOS POR HORA ***
READ(*,*) SERPORH
WRITE(*,*) *** DURACION DE LA SIMULACION EN HORAS ***
READ(*,*)TITOT
WRITE(*,*) *** SEMILLA ***
WRITE(*,*)(NUMERO NATURAL DE UN MAXIMO DE 4 CIFRAS)
READ(*,*)IX
NSEMILLA=IX
WRITE(6,*) SIMULACION DE UNA COLA
WRITE(6,*) -
WRITE(6,*)
WRITE(6,*) DATOS DE LA COLA:
WRITE(6,*)
234 TEMA 9. INTRODUCCIN A LA SIMULACIN
WRITE(*,*) SIMULACION DE UNA COLA
WRITE(*,*) -
WRITE(*,*) DATOS DE LA COLA:
WRITE(*,*)
c ***valores de inicializacion ***
30 NLLEGA=0
RELOJ=0
NESPERA=0
N1LI0OC=1
TISEROC=0
TIESPERA=0
NCOLA=0
TIPO= INICIO
c
c ***calcula el tiempo de llegada al sistema del primer cliente
c demandando servicio***
CALL RND(IX,YFL)
TIPR0LL=-ALOG(1.-YFL)/VLLPORH
c ***como no hay nadie en la cola el tiempo en que se termina el servicio
c se toma como arbitrariamente grande. una eleccion conveniente es la
c duracion de la simulacion***
TIPR0SER=TITOT
c
c *** el tiempo del proximo suceso se toma como el minimo del tiempo
c de llegada, tiempo de completar el servicio , y el tiempo de
c terminar la simulacion***
WRITE(6,100)VLLPORH,SERPORH,TITOT,NSEMILLA
WRITE(6,*) TIPO RELOJ NCOLA N1LI0OC TIPR0LL TIPR0SER
WRITE(6,50)TIPO, RELOJ ,NCOLA ,N1LI0OC, TIPR0LL, TIPR0SER
60 TIPSUC=AMIN1(TIPR0LL,TIPR0SER,TITOT)
9.7. SIMULACIN DE UNA COLA M/M/1 235
c
c ***calcula el total del tiempo ocupado del servidor y
c el de espera de los que esperan servicioe. luego el reloj
c se adelanta hasta el tiempo del proximo suceso***
TISEROC=TISEROC+N1LI0OC*(TIPSUC-RELOJ)
TIESPERA=TIESPERA+NCOLA*(TIPSUC-RELOJ)
RELOJ=TIPSUC
c
c ***va a 90 si el proximo suceso es parar la simulacion,
c o va a 80 si el siguiente suceso es completar un servicio***
c
IF (TIPSUC.EQ.TITOT) GO TO 90
IF (TIPSUC.EQ.TIPR0SER) GO TO 80
c
c ***en otro caso el propio suceso es una llegada
c . modica el numero total de llegadas
c y genera el tiempo en que vendra el siguiente cliente***
c
NLLEGA=NLLEGA+1
CALL RND(IX,YFL)
TIPR0LL=RELOJ-ALOG(1.-YFL)/VLLPORH
c
c ***va a 70 si el servidor esta libre; si no es asi
c modica el numero de los que han tenido que esperar y
c el numero de los que estan esperando ahora y vuelve al principio
c para determinar de que tipo es el siguiente suceso***
IF (N1LI0OC.EQ.1) GO TO 70
NESPERA=NESPERA+1
NCOLA=NCOLA+1
TIPO = LLEGADA
236 TEMA 9. INTRODUCCIN A LA SIMULACIN
WRITE(6,50)TIPO, RELOJ ,NCOLA ,N1LI0OC, TIPR0LL, TIPR0SER
50 FORMAT(A10,F10.2,I10,I10,F10.2,F10.2)
GO TO 60
c
c ***modica el estado del servidor, genera el tiempo de
c duracion del servicio el numero de los que estan esperando ahora
c y vuelve al principio para determinar de que tipo
c es el siguiente suceso***
70 N1LI0OC=0
CALL RND(IX,YFL)
TIPR0SER = RELOJ - ALOG(1.-YFL)/SERPORH
TIPO = LLEGADA
WRITE(6,50)TIPO, RELOJ ,NCOLA ,N1LI0OC, TIPR0LL, TIPR0SER
GO TO 60
c ***ha terminado un servicio. va a 85 si
c alguien esta esperando, pues el servidor ha quedado libre ***
C
80 IF (NCOLA.GT.0) GO TO 85
c
c ***si no hay nadie esperando, registra que el servidor esta libre
c y el tiempo de la siguiente partida la pone en un valor
c arbirariamente alto.
c luego vuelve para determinar el tipo del siguiente suceso***
N1LI0OC=1
TIPR0SER=TITOT
TIPO= LLEGADA
WRITE(6,50)TIPO, RELOJ ,NCOLA ,N1LI0OC, TIPR0LL, TIPR0SER
GO TO 60
c
c ***DISMINUYE LA LONGITUD DE LA COLA
9.7. SIMULACIN DE UNA COLA M/M/1 237
c GENERA EL TIEMPO DE COMPLETAR EL SERVICIO Y VUELVE
c PARA DETERMINAR DE QUE TIPO ES EL SIGUIENTE SUCESO ***
85 NCOLA=NCOLA-1
CALL RND(IX,YFL)
TIPR0SER=RELOJ-ALOG(1.-YFL)/SERPORH
TIPO= PARTIDA
WRITE(6 ,50)TIPO, RELOJ ,NCOLA ,N1LI0OC, TIPR0LL, TIPR0SER
GO TO 60
c ***se ha terminado el tiempo de la simulacion
c se calculan los estadisticos
c se prepara la salida de la informacion*****
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,*) RESUMEN DE LA SIMULACION:
WRITE(6,*)
WRITE(6,*)
WRITE (6,110)ACTIV,VMNCOLA,VMPES,VMTEC,PRESPE
100 FORMAT (
1 MEDIA DE LLEGADAS POR HORA: ,F7.2/
2 MEDIA DE CLIENTES ATENDIDOS POR HORA: ,F7.2/
3 DURACION DE LA SIMULATION, HORAS: ,F7.2/
4 SEMILLA: ,I5/)
110 FORMAT ( % DE ACTIVIDAD DEL SERVIDOR: ,F7.2/
238 TEMA 9. INTRODUCCIN A LA SIMULACIN
1 LONGITUD MEDIA DE LA COLA: ,F7.2/
2 NUMERO MEDIO DE PERSONAS EN EL SISTEMA: ,F7.2/
3 TIEMPO MEDIO DE ESPERA EN LA COLA: ,F7.2/
4 PROBABILIDAD DE TENER QUE ESPERAR: ,F7.2/)
WRITE(*,*) LOS RESULTADOS INTERMEDIOS DE ESTA SIMULACION
WRITE(*,*) ESTAN GUARDADOS EN EL FICHERO COLA.RES
STOP
END
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Salida de resultados de una simulacin
SIMULACION DE UNA COLA
DATOS DE LA COLA:
MEDIA DE LLEGADAS POR HORA: 15.00
MEDIA DE CLIENTES ATENDIDOS POR HORA: 18.00
DURACION DE LA SIMULACION, HORAS: 8.00
SEMILLA: 65
TIPO RELOJ NCOLA N1LI0OC TIPR0LL TIPR0SER
INICIO 0.00 0 1 0.02 8.00
LLEGADA 0.02 0 0 0.13 0.05
PARTIDA 0.05 0 1 0.13 8.00
LLEGADA 0.13 0 0 0.17 0.20
LLEGADA 0.17 1 0 0.18 0.20
LLEGADA 0.18 2 0 0.35 0.20
PARTIDA 0.20 1 0 0.35 0.21
PARTIDA 0.21 0 0 0.35 0.24
LLEGADA 0.24 0 1 0.35 8.00
...............
...............
9.7. SIMULACIN DE UNA COLA M/M/1 239
TIPO RELOJ NCOLA N1LI0OC TIPR0LL TIPR0SER
LLEGADA 7.75 7 0 7.77 7.76
PARTIDA 7.76 6 0 7.77 7.81
LLEGADA 7.77 7 0 7.84 7.81
PARTIDA 7.81 6 0 7.84 7.90
LLEGADA 7.84 7 0 7.90 7.90
LLEGADA 7.90 8 0 7.90 7.90
LLEGADA 7.90 9 0 7.91 7.90
PARTIDA 7.90 8 0 7.91 7.91
LLEGADA 7.91 9 0 8.00 7.91
PARTIDA 7.91 8 0 8.00 7.93
PARTIDA 7.93 7 0 8.00 7.95
PARTIDA 7.95 6 0 8.00 8.04
En las dos tablas anteriores se presenta la evolucin de la cola en los primeros y
en los ltimos momentos de una simulacin de 8 horas.
RESUMEN DE LA SIMULACION (8 horas):

ACTIVIDAD DEL SERVIDOR (fraccin): 0 .73


LONGITUD MEDIA DE LA COLA: 2.10
NUMERO MEDIO DE PERSONAS EN EL SISTEMA: 2.84
TIEMPO MEDIO DE ESPERA EN LA COLA: 0.14
PROBABILIDAD DE TENER QUE ESPERAR: 0.78
La tabla siguiente presenta un resumen de la simulacin de 8 horas y de otra de
10000 horas. Se comparan con los resultados analticos, observndose la similitud de
estos valores con los obtenidos en la simulacin ms larga. A veces las simulaciones
cortas, como en este ejemplo, no son sucientes para obtener una precisin aceptable
debido, no slo a la escasez de datos, sino tambin a que no se ha llegado a obtener
an el rgimen estacionario.
Duracin
de la
Simulacin
Actividad
del
Servidor
Longitud
media de
la cola
N
o
medio de
personas en
el sistema
Tiempo medio
de espera
en la cola
8 horas 0.73 2.10 2.84 0.14
10000 horas 0.84 4.23 5.07 0.28
Resultados
analticos

= 0.833

2
()
= 4.16.

= 5

()
= 0.277
240 TEMA 9. INTRODUCCIN A LA SIMULACIN
9.8 Integracin Montecarlo. Mtodo de xito-fracaso
En el modelo de simulacin de la cola, hemos aplicado un Montecarlo Probabilista.
Consideremos ahora un ejemplo de aplicacin del Montecarlo Determinista: el cl-
culo de una integral denida. Tratamos ahora el problema de calcular la integral
unidimensional I =
_
b
a
g(x)dx. El procedimiento que se emplear, mtodo de xito-
fracaso, no es el ms eciente, aunque s es el ms intuitivo.
Se supondr que el integrando, g(x), es una funcin acotada (ver gura 9.2):
0 g(x) c, x [a, b]
Sea el rectngulo
= {(x, y) R
2
x [a, b], y [0, c]} = [a, b] [0, c]
y sea (X, Y ) una variable aleatoria uniformemente distribuida sobre con funcin
de densidad:
f
XY
=
_
1
c(ba)
si (x, y)
0 en otro caso
Cul es la probabilidad P de que el vector aleatorio (x, y) caiga en el rea
situada por debajo de la curva g(x) ?
Denotemos por S = {(x, y)| y < g(x)}. Se observa que el rea bajo g(x) es igual
al rea de S, que a su vez coincide con el valor de la integral
I =
_
b
a
g(x)dx.
Con ayuda de la gura, se puede deducir que:
P =
area S
area
=

b
a
g(x)dx
c(ba)
=
I
c(ba)
Por tanto
I = c(b a)P
9.8. INTEGRACIN MONTECARLO. MTODO DE XITO-FRACASO 241
g(x) g(x) g(x) g(x)
a b
* Fracaso
* Exito
c
x
S

Mtodo MC de xito-fracaso.
Figura 9.2:
Para estimar el valor de P generamos N puntos aleatorios independientes:
(x
1
, y
1
), (x
2
, y
2
).....(x
N
, y
N
)
dentro del rectngulo .
La probabilidad P puede ser estimada por:

P =
N
h
N
siendo N
h
el nmero de estos puntos que se verica g(x
i
) > y
i
(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
Si el extremo del vector aleatorio cae en S se interpreta como un xito, y si no
pertenece a S como un fracaso, de ah el nombre del mtodo.
Este mtodo, que presentamos aqu por su simplicidad, no suele ser muy eciente,
existiendo diversos procedimientos alternativos que permite reducir los errores en las
estimaciones de la integral. De todos formas, conviene tener en cuenta que el mtodo
Montecarlo no es el ms indicado para el clculo de integrales unidimensionales,
siendo sin embargo uno de los ms ecientes cuando el nmero de variables del
integrando es bastante elevado.
242 TEMA 9. INTRODUCCIN A LA SIMULACIN
9.9 Ejemplos de programas de simulacin
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 2
o
grado.
UN EJEMPLO DE APLICACIN
En la salida del programa siguiente se puede observar que el programa obtiene
como valor aproximado de
_
2
2
(x
2
+ 2x + 3)dx
usando 250 puntos 17.072. Obsrvese que el valor exacto es 17.333...

OPERATORIA
Se sigue el orden siguiente :
(1) Introducir los lmites de integracin a y b.
(2) Indicar los coecientes de la funcin polinmica de 2
o
grado.
9.9. EJEMPLOS DE PROGRAMAS DE SIMULACIN 243
(3) Introducir el valor inicial de la semilla, para la generacin de nmeros aleato-
rios.
(4) Establecer el nmero de puntos a generar en cada ejecucin.
Pulsando el botn DIBUJAR se obtiene la grca de la funcin en el intervalo
indicado y desde los valores mximo y mnimo que en l alcanza.
Cada vez que pulse AZAR, se representa el nmero de puntos indicado en (4),
calculando el valor estimado del rea. Puede COPIAR el grco en el portapapeles
Windows, para incorporar en documentos (razn por la que se habilita el acceso a
Paintbrush desde el men de opciones).
Ejemplo 2
PROPSITO: Estimar la probabilidad de que el determinante de una matriz de
orden 3 por 3, cuyos elementos son nmeros naturales pertenecientes a un cierto
intervalo, sea nulo.
El programa muestra los determinantes generados segn se muestra en la siguien-
te gura.
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
gura.
244 TEMA 9. INTRODUCCIN A LA SIMULACIN
A continuacin se presenta el resumen de los parmetros del sistema.
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
FUNCIONALIDAD DEL PROGRAMA:
1) Tipos de problemas planteados
Sistemas con c- canales de servicio
Sistemas con c canales de servicio y capacidad restringida
Sistemas con innitos canales de servicios.
La seleccin se realiza en el men de la gura 9.3.
Figura 9.3:
2) Distribuciones de llegada y de servicio empleadas. Se puede seleccionar
cualquiera de las distribuciones de la ventana dada en la gura 9.4.
3) Grco de la evolucin de los parmetros del sistema para vericar la esta-
cionariedad del sistema.
Si se ha elegido el seguimiento grco se presenta una grca que permite decidir
si se ha alcanzado el estado estacionario del sistema. Cuando se alcanza este estado
se inicia la simulacin del sistema, respetando su estado actual, hasta obtener los
parmetros de la cola.
4) Clculo de los parmetros del sistema.
Como resultado nal aparecen los parmetros del sistema dados en una ventana
cuya presentacin puede verse en la gura 9.5.
APLICACIN A CASOS PRCTICOS
Caso 1: En un aeropuerto con tres pistas de aterrizaje se ha contrastado que los
246 TEMA 9. INTRODUCCIN A LA SIMULACIN
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.
No. de eventos 100000 200000 500000 800000
Tiempo simulado 1239722 2486862 6245916 9982817
Media de aviones en el sistema 1.4152 1.4127 1.4040 1.4044
Media de aviones en espera 0.0931 0.0917 0.0888 0.0889
Tiempo medio en el sistema 35.0896 35.1320 35.0767 35.0514
Tiempo medio de espera 2.3084 2.2800 2.2184 2.2195
Caso 2. En este caso se ha realizado una simulacin con llegadas y tiempo
de servicios exponenciales, para poder contrastar las salidas del programa con los
resultados obtenidos analticamente. Tambin aqu se constata la precisin de los
resultados obtenidos.
Nodo de llegada exp. (1)
G/G/3/7 Nodos de servicio (1,2,3) exp. (0.1666)
Eventos 200000 400000 800000 Terico
L 6.0711 6.0693 6.0615 6.0631
Lq 3.0999 3.0982 3.0910 3.0920
W 12.3350 12.3175 12.2391 12.2444
Wq 6.2981 6.2877 6.2412 6.2442
248 TEMA 9. INTRODUCCIN A LA SIMULACIN

You might also like