investigación operativa

Transcripción

investigación operativa
INVESTIGACION OPERATIVA
Tercer curso de Ingeniería Técnica de Gestión
CURSO 2010-2011
Profesor:
Alejandro Quintela del Río
TEMA 0: Historia de la investigación de operaciones.
La Investigación Operativa en la segunda guerra mundial:
-La máquina Enigma, El sónar, El proyecto Manhattan.
TEMA 1: MODELOS DE PROGRAMACION LINEAL y APLICACIONES.
. Formulación de modelos de programación lineal. Ejemplos.
. Solución gráfica de problemas de programación lineal con
dos variables. Interpretación. Definiciones
básicas.
. Problemas de programación lineal en forma estándar.
.
Sistemas de ecuaciones lineales simultáneas. Definiciones básicas: solución factible, variables
básicas y no básicas, sistema canónico, solución básica, solución factible básica.
TEMA 2: EL METODO DEL SIMPLEX.
. Esquema básico de funcionamiento del método del Simplex. Beneficios relativos, criterio de entrada, criterio
de salida (regla de la mínima proporción), elemento pivote, pivotaje.
. El método del Simplex por tablas.
. Problemas de cálculo: empates en el criterio de entrada, empates en el criterio de salida, degeneración,
ciclaje.
.
Obtención de una solución factible básica inicial: Método de las Dos Fases y Método de las
Penalizaciones.
- Otros: Consideraciones computacionales, Método del punto interior.
TEMA 3: EL METODO REVISADO DEL SIMPLEX.
. El método revisado: Conceptos básicos. Vector de Multiplicadores.
. Desarrollo del método.
. Ventajas del método revisado del Simplex sobre el método del Simplex regular.
TEMA 4: TEORIA DE LA DUALIDAD.
. Fomulación del problema dual.
. Problemas primal-dual simétrico. Propiedades y relaciones de los problemas primal y duaL
. Teoremas de la dualidad.
. Condiciones de holguras complementarias.
. Problemas asimétricos primal-duaL
. Lectura de la solución dual óptima en la tabla óptima primaL
TEMA 5: EL METODO DUAL DEL SIMPLEX.
. Conceptos fundamentales. Bases factibles dual y primaL
. Desarrollo del método dual del Simplex.
. Identificación de problemas no factibles.
TEMA
6:
ANALISIS
DE
SENSIBILIDAD
PARAMETRICA.
. Modificaciones en los coeficientes de la función del objetivo.
. Modificaciones en las constantes de la derecha de las restricciones.
. Modificaciones en la matriz de coeficientes de las restricciones.
. Adición de nuevas variables.
. Adición de nuevas restricciones.
. Variación paramétrica de los coeficientes de la función del objetivo.
. Variación paramétrica de las constantes de la derecha de las restricciones.
TEMA 7: PROGRAMACION LINEAL ENTERA.
. Formulación de modelos.
. Algoritmo de ramificación y acotación.
. Aspectos computacionales.
Y
PROGRAMACION
PROBLEMAS ESPECIALES DE PROGRAMACION LINEAL.
1 Problemas de Transporte.
. Formulación del Problema Standard del Transporte.
. Obtención de una solución factible básica inicial: método de la esquina noroeste y método del coste mínimo.
. Algoritmo de Stepping-Stone.
2 Problemas de Asignación.
. Formulación del Problema Standard de Asignación.
. Método Húngaro.
BIBLIOGRAFÍA
. ANDERSON, D.R. - SWEENEY, D.J. - WILLIAMS, T.A.
Introducción a los modelos cuantitativos para administración.
Grupo Editorial Iberoamericana.
. ARREOLA, J. – ARREOLA, A.
Programación lineal. Una introducción a la toma de decisiones cuantitativa.
Thomson
. BRONSON. R.
Teoría y problemas de investigación de operaciones.
Schaum, McGrawHill
. DANTZIG, G.B.
Linear programming and extensions
Princeton University Press
. GARCIA, J. - FERNANDEZ, L. - TEJERA, P.
Técnicas de investigación operativa.
Ed. Paraninfo.
. HILLIER,F. - LIEBERMAN, G.
Introducción a la investigación de operaciones.
McGraw-Hill
. INFANTE MACIAS, R.
Métodos de programación matemática.
UNED
. MATHUR - SOLOW
Investigación de operaciones.
Prentice Hall
. PARDO, L.
Programación lineal continua: aplicaciones prácticas en la empresa.
Ed. Díaz de Santos.
. PARDO, L.
Programación lineal entera: aplicaciones prácticas en la empresa.
Ed. Díaz de Santos.
. RAVINDRAN, A. - PHILLIPS, D. - SOLBERG, J.
Operations Research. Principles and Practice.
Wiley.
. RIOS INSUA, S.
Investigación Operativa. Optimización.
Ed. Centro de Estudios Ramón Areces.
. GASS, S. – ASSAD, AR.
An annotated timeline of operations research. An informal history.
Kluwer Academic Publishers
. TAHA, H.
Investigación de Operaciones.
Prentice Hall
INVESTIGACIÓN OPERATIVA. XESTIÓN. CURSO 2010-2011.
PROBLEMAS DE PROGRAMACIÓN LINEAL
1.-) Una compañía armamentística americana desea proyectar la fabricación de un cohete
antitanque casero para vender en supermercados. La Compañía ha considerado 3
modelos y su departamento de producción ha elaborado la siguiente tabla:
modelo
Trabajo
A
B
C
(horas 7
3
6
4
5
20$
30$
por unidad)
Material
(titanio 4
Por unidad)
Beneficios
(por 40$
unidad fabricada)
El suministro de material se restringe a 200 kg de titanio por día, y la disponibilidad
total diaria de los trabajadores es de 150 horas. Formular un problema de programación
lineal para determinar la producción diaria de cada modelo, en orden a maximizar el
beneficio total.
2.- ) El gobierno provisional ha decidido repartir cereales en los colegios iraquíes a la hora
de la merienda. Los niños podrán tomar Cereales "A" o Cereales "B", o bien una mezcla de
ambos. Por recomendación de la ONU, los niños deben recibir en su desayuno, cuando
menos, 1 miligramo de tiamina, 5 miligramos de miacina y 400 calorías. Una unidad (100
gramos) de cereales "A" tiene 0.10 mg de tiamina, 1 mg de miacina y 110 calorías,
mientras que una unidad de cereales "B" tiene 0.25 mg de tiamina, 0.25 de miacina y 120
calorías. La unidad de cereales "A" cuesta 180 centavos de dólar y la de cereales "B" 234
centavos de dólar. Formular un problema de programación lineal que sirva para establecer
la dieta óptima más barata.
Problemas 1
3.- ) El administrador de un club de carretera ha elaborado una lista de necesidad de
camareras para su establecimiento cada 24 horas
Periodo
Horas
Numero mínimo de camareras
1
6 a 10
60
2
10 a 14
70
3
14 a 18
60
4
1 8 a 22
50
5
6
22 a 2
2a6
20
30
El administrador ha acordado con las camareras que éstas comiencen a trabajar al
principio de cada periodo y trabajen 8 horas seguidas. El administrador quiere determinar
el número mínimo de camareras que sea suficiente para la atención correcta del
establecimiento.
Formular un modelo de programación lineal para este caso.
4.-) Una organización terrorista da trabajo a 1000 personas. En una semana, cada uno de
ellos puede producir 2 barriles de sustancias químicas “mantrax” para enviar a países del
eje del mal, o bien transformar un barril en otro de un arma de destrucción masiva
“agente amarillo” (tras mezclado de sustancias indicadas por un químico español aburrido
de no cobrar un duro como becario), pero no ambas cosas a la vez. Actualmente, la
fábrica tiene un amplio surtido de materia prima porque se la envió Irak poco antes de la
invasión. Después de tres semanas de producción, los barriles de “mantrax” se venden a
20$ unidad y los barriles de “agente amarillo” a 75 por unidad.
Plantear un problema de programación- lineal que nos sirva para calcular cuántos
terroristas deben dedicarse a la fabricación de cada producto durante cada semana, en
orden a obtener el máximo beneficio (supóngase que un barril de mantrax puede
convertirse en agente amarillo tan sólo a la semana siguiente de su fabricación).
5.- ) Para la fabricación de dos herramientas de defensa personal A y B son necesarias 2
operaciones. Cada unidad de la herramienta A requiere de 2 horas de la operación 1 y 3
horas de la operación 2. Cada unidad de la herramienta B requiere de 3 horas de la
operación 1 y 4 horas de la operación 2. La operación 1 puede desarrollarse durante 16
horas y la 2 durante 24 horas.
Problemas 2
Al fabricar la herramienta B también se produce un polvillo mata-suegras sin coste
adicional, pero sólo una parte puede venderse con provecho en sobres en quioscos; el
resto debe destruirse. Se obtienen 2 sobres del polvillo C por cada herramienta B
fabricada, y sólo se podrán vender 5 sobres de C para que la policía no sospeche y
clausure la fábrica
La ganancia de la herramienta A es de 4 euros por unidad y la de B es de 10 euros.
por unidad. El producto C, si se vende proporciona una ganancia de 3 euros/unidad, pero
si se destruye su coste es de 2 euros/unidad.
Plantear un problema de p.l.. de manera que se maximicen las ganancias.
6.-) Una tienda de máquinas tiene un taladro a presión y 5 máquinas moledoras, las
cuales son utilizadas para producir un destornillador-navaja que consta de dos piezas
A(destornillador) y B (navaja). La productividad de cada máquina para las dos piezas
viene dada por:
Tiempo de producción en minutos por pieza
TALADRO
MOLEDORA
PIEZA A
3
20
PIEZA B
5
15
Se desea mantener un equilibrio entre todas las máquinas de lal forma que ninguna
máquina trabaje 30 minutos por día más que otra (se supone que la carga de trabajo de
cada moledora es la media de las 5 máquinas). Plantear un problema de programación
lineal para obtener el número máximo de herramientas completas en 8 horas diarias de
trabajo.
7.-) Un alumno de Quinto de Ingeniería Informática al que sólo le queda Álgebra y
Estadística para licenciarse, y que sólo dispone de 30 días para prepararlas, recibe de su
padre la siguiente proposición:
Por cada asignatura que apruebe le premiará de la siguiente forma:
. Por cada punto que saque en Álgebra le dará 900 euros.
. Por cada punto que saque en Estadística le dará 500 euros.
Al alumno le ha salido un curre como striper por el que le pagan a 15 euros la hora,
y no puede hacer más de 200 horas al mes sin que su abuela (católica ferviente desde que
nació) se entere y lo desherede. El alumno piensa que:
. Tiene que dormir necesariamente 8 horas diarias.
Problemas 3
. Va a dedicar, sin excusa alguna, 100 horas en chats y hackeos a los ordenadores
de varios alumnos pelotas que han subido el nivel de estudios ese año.
Sabe que para cada punto de álgebra necesitará 30 horas de estudio, y de
Estadística 20 horas.
¿Cómo distribuirá su tiempo para obtener máximo beneficio económico, si no está
realmente obligado a aprobar, puesto que un arreglo con un Vicedecano (al que pagaría
600 euros) le permite obtener el título igual ¿Cuánto dinero le queda una vez transcurridos
estos 30 dias tan apurados?
Nota: El padre le paga por la nota que saque, pero solo si aprueba. Se aprueba con nota
mayor o igual a 5. El problema es más difícil de plantear de lo habitual, pero fácil de
resolver.
8.-) Utilizando el método del simplex resolver:
Maximizar Z =x1 + 3x2
s uj e t o a
x1 ≤ 5
x1 + 2x2 ≤ 10
x2 ≤ 4
x1,x2 ≥ 0
Dibujar la región factible. Seguir gráficamente los pasos del método del simples,
interpretando el cambio de una solución factible básica a la siguiente en dicha región
factible.
9.-) Sean Y1, Y2 2 soluciones óptimas de un p.p.l en forma estándar.
Max (o Min) Z=CX
AX = b
X ≥0
Demostrar que cualquier vector de la forma Y=a1 Y1+a2Y2 con a1+a2=1, a1,a2≥0 es
también una solución óptima.
Generalización.- demostrar que, si en vez de tener 2 soluciones óptimas se tienen n, el
vector Y= a1 Y1+…+anYn con a1+a2+…+an=1, a1,a2,…,an≥0 es también una solución
óptima.
10.-) Resolver el siguiente problema utilizando el método de las penalizaciones:
MINIMIZAR Z = 2X1 - X2 + 2X3
SUJETO A
-X1 + X2 + X3 = 4
Problemas 4
- X1 + X2 - X3 ≤ 6
X1≤0, X2≥0, X3 cualquier signo
11.-) Obtener tres soluciones óptimas del siguiente problema:
Minimizar Z = 3X1+ X2+ X3 + X4
sujeto a - 2X1 + 2X2 + X3= 4
3X1 + X2+ X4 = 6
Xi≥ 0
12.-) Se ha resuelto un problema de programación lineal y se ha obtenido solución óptima
múltiple. Se tiene que Y1 = (2,3,0), y2 = (3,1,1) Y y3 = (1,2,2) son tres soluciones
óptimas. ¿Puede saberse si y4 = (2,2,1) es también una solución óptima? Justifíquese la
respuesta.
PROBLEMAS DE PROGRAMACION LINEAL AVANZADA.
1.-) Dado MINIMIZAR Z = 2x1 - x2 + 3x3
Sujeto a
X1
-2x3 ≥ 6
2x1 - x2 + 2x3 ≥ -2
x1,x3 ≥ 0, x2 cualquier signo
a) Escribir el problema dual y resolverlo gráficamente.
b) A partir de la solución dual calcular la del primal utilizando las condiciones de
holguras complementarias.
2.-) La tabla óptima de un p.p.1. de maximización con 3 restricciones del tipo ≤ y
2 incógnitas (x1 ,x2) es
Base
x3
x2
x1
Cj-
Xl
0
0
1
0
x2
0
1
0
0
x3 x4
Xs Constantes
1
1 -1
2
0
1
0
6
0
-1
1
2
0
-3 -2
Donde x3,x4,x5 son variables de holgura. Calcular el valor óptimo de la función del
Problemas 5
objetivo de 2 formas diferentes.
3.-) Sabiendo que los 2 siguientes sistemas de restricciones
i) 2x1+x2+4x3 ≤10, 3x1+2x2-x3≥1, 2x1-x2+x3≤ 5; xi≥ 0
ii) 4y1+y2+y3≥ 5, -2y1+3y2-2y3≤ 1, -y1+2y2+y3≤ 1, yi≥ 0
son los conjuntos de restricciones de un problema de p.l. y de su dual,
respectivamente (las restricciones no están ordenadas), determinar cuáles de las
siguientes parejas de soluciones dadas por las ternas (x1,x2,x3) e (y1,y2,y3)
pueden ser soluciones óptimas de los correspondientes p.p.l, justificando la
respuesta.
a)
b)
c)
d)
(1,1,1)
(1,0,2)
(1,0,2)
(1,2,0)
y
y
y
y
(1,1,0)
(1,1,0)
(0,2,1)
(0,2,1)
4-) Dado el p.p.l
Max Z= 15x1 + 25x2 + 10x3
Sujeto a
-6x2+3x3≥ 12
3x1+12x2+6x3=30
xi≥ 0
a) resolver el problema dual gráficamente
b) a partir de la solución óptima del problema dual, calcular la solución óptima
del primal utilizando las condiciones de holgura complementarias
5.-) Comprobar, utilizando el método del simplex dual, que el siguiente problema no
tiene solución:
MAXIMIZAR Z= -4X1 – 3X2
Sujeto a
X1 + x2 <=1;
-x2 <=-1;
-x1+2x2<=1;
x1,x2>=0
6.-) Resolver el siguiente p.p.l., utilizando el método dual del simplex:
Min Z =40x1+36x2
Sujeto a x1<=8
X2 <=10
Problemas 6
5x1+3x2>=45
x1,x2 >=0 y enteros
7.-) Considérese el problema
maximizar Z= 5x1 – 6x2 –6x3
sujeto a
x1+5x2 + 2x3 <= b1
x1 – x2 - x3 <= b2
xi>=0
para unos valores específicos de b1 y b2 la solución óptima es:
Base
X1
X4
cj
X1
1
0
0
X2
b
c
a
X3
-1
3
-1
X4
0
1
d
X5
1
-1
e
ctes
30
10
Z=150
Calcular
a) Los valores de b1 y b2 que proporcionan la solución óptima especificada
b) los valores de a, b y c en la tabla óptima
c) si se requiriera aumentar Z0 óptimo, ¿debería aumentarse b1 ó b2 y en cuánto?
d) Supongamos que la función objetivo del problema anterior se cambia a minimizar,
esto es, queda Min Z=5x1 – 6x2 –6x3. Obtener la nueva solución óptima y el nuevo Z
óptimo a partir de la solución óptima inicial, sin resolver el problema otra vez
8.-) Una banda de “querubines del purgatorio” posee un laboratorio clandestino en el que
fabrican 3 tipos diferentes de droga: “Peleona” (P), “Juliana” (J) y “Marijuana” (M). Para la
fabricación son necesarios, además de pastillas sedantes, pegamento y caldo avecrem
–para los cuales no hay limitación de disponibilidad-, crack y cocaína, que limitan la
cantidad diaria de producción. La siguiente tabla nos da la cantidad necesaria de estos 2
últimos recursos para producir 1 kg de cada una de las distintas drogas, los kg disponibles
de cada recurso, y el beneficio por kg de droga producida
Crack
Cocaína
Beneficio (en
millones de
euros)
P
2
1
4
J
1
2
7
M
2
2
3
disponibilidad
30
45
El jefe de la banda es un experto en IO, y calcula la producción óptima mediante la
programación lineal. Obtiene que, como más dinero ganarán será fabricando 5 kg de
droga P, 20 de J y no fabricando la M.
Problemas 7
Responder:
a) ¿Por qué no sale rentable fabricar la droga Marijuana? ¿Qué debería ocurrir para
que sí se fabricase?
b) Resulta que, por cada kg de crack que sobre, hay un millonario colgado que se lo
compra, pagándolo a 2 millones el kg. ¿Sigue siendo la solución inicial la óptima?
c) La policía ha incautado en el puerto un alijo de crack procedente de Nueva Zelanda.
Un policía corrupto le vende a la banda 6 kg a cambio de 5 millones. ¿Les compensa
comprárselos?
d) Un robo salvaje a una banda rival les proporciona nada menos que 63 kg más de
crack. Lógicamente, ahora la solución inicial no puede seguir siendo la óptima.
Calcular la nueva.
e) Gracias a una nueva formula robada en el Monsergas, no es necesario utilizar
cocaína para fabricar la droga M.¿Cuánto dinero ganará la banda con esta nueva
fórmula?
f) Se introduce en el plan de producción la posibilidad de añadir tomate, de forma que
la fabricación de 1 kg de droga P requiere 3 kg de tomate, 1 kg de J requiere 1 kg
de tomate, y 1 kg de M requiere también 1 kg de tomate. Se tienen 30 kg de
tomate. ¿Cómo varía la solución óptima? Si es el caso, calcular la nueva
g) A la chorba del jefe se le ocurre fabricar un nuevo tipo de droga que coloque más
rapidamente (Veloz), que requiere 1 kg de crack y 1 kg de cocaína por kg fabricado,
y supone que les reportará 5 millones de euros por kg. Ella dice que la fabricación
de esta droga les hará ganar más dinero. ¿Es cierto lo que piensan los de la banda
acerca de que el jefe es un calzonazos, y que su novia está equivocada? ¿Cuánto
ganan o pierden con esta idea?
9.-) Una empresa fabrica los productos A, B y C, para lo que son necesarios recursos de
trabajo y material. Se quiere determinar la producción que maximiza la ganancia. Para
ello se plantea el siguiente p.p.l.
Maximizar Z= 3x1 + x2 + 5x3
Sujeto a
6x1 + 3x2 + 5x3 <= 45 (trabajo)
3x1 + 4x2 + 5x3 <= 30 (material)
xi>=0
y se obtiene la siguiente solución óptima x1=5, x3=3, x2=0.
Utilizando el análisis de sensibilidad, responder a las siguientes cuestiones
a) calcular el campo de variación de c1 que mantiene esta solución óptima, y calcular
la solución óptima para c1=2
b) disponemos de 6 unidades adicionales de material a un coste de 10 (en total). ¿Es
rentable adquirirlas?
c) Encontrar la solución óptima cuando el material disponible es de 60 unidades.
d) Si el material que se necesita para el producto B fuese de 2 unidades, ¿afectaría a
la solución óptima?
e) Se añade al problema una condición de control 2x1+x2+3x3<=20. ¿Cómo afecta
esto a las soluciones primal y dual?
10.-) La siguiente tabla da una solución óptima a un p.p.l estándar donde suponemos que
x4 y x5 forman la base inicial (son variables de holgura)
Problemas 8
Base
X1
X2
cj
X1
1
0
0
X2
0
1
0
X3
-1
2
-3
X4
3
-1
-3
X5
-1
1
-1
ctes
1
2
a) calcular el campo de variación de λ para que la solución actual siga siendo óptima si el
vector original b de constantes de la derecha es reemplazado por b+λb*, con
b*=(1,-1). Encontrar la solución óptima para λ=1/2
b) calcular la solución óptima si se añade la nueva restricción x1 + x3>=2 al problema
original.
c) calcular los precios sombra de las restricciones.
11.-) Dado el p.p.l. paramétrico siguiente
Maximizar Z = (4-λ)x1 + (3-2λ)x2 + (6-λ)x3
Sujeto a
3x1 + x2 + 3x3 <=30
2x1 + 2x2 + 3x3 <= 40
xi>=0
calcular la solución óptima y el valor de λ que daría un beneficio óptimo de 62.
12.-) Resolver el siguiente p.p.l. entera, usando el algoritmo de ramificación y acotación
Min Z =10x1+9x2
Sujeto a x1<=8
X2 <=10
5x1+3x2>=45
x1,x2 >=0 y enteros
PROBLEMAS DE TRANSPORTE
1.-) Una compañía de conservas tiene 2 plantas de producción. Tres cultivadores le surten
de fruta fresca en las siguientes cantidades
Felipe: 200 toneladas a 10.000 unidad
Carrascal: 300 toneladas a 9000 unidad
Problemas 9
Andrés: 400 toneladas a 8000 unidad
Los costes de transporte en miles de euros por tonelada son
Hacia
Desde
Planta A
Planta B
Felipe
2
2.5
Carrascal
1
1.5
Andrés
5
3
Las capacidades de las plantas y los costes de producción son:
Planta A: Capacidad 450 toneladas a 25000 euros la tonelada
Planta B: Capacidad 550 toneladas a 20000 euros la tonelada
La fruta en conserva se vende a 50000 la tonelada. La compañía puede vender a
este precio todo lo que produce. ¿Qué cantidad se deberá enviar desde cada cultivador a
cada planta de manera que la compañía obtenga el máximo beneficio?
Plantearlo como un problema de transporte y resolverlo.
2.-) Se pretende distribuir a los estudiantes de tres barrios de una ciudad (A,B,C) entre 4
colegios (E,O,N,S). Hay 50 estudiantes en cada barrio y los colegios admiten 20,40,30 y
60 estudiantes, respectivamente. El coste de tranporte en autobús viene dado en la
siguiente tabla
BARRIOS
A
B
C
E
7
9
8
COLEGIOS
O
6
7
8
N
5
3
7
S
4
6
3
La delegación de educación desea planificar la distribución de los estudiantes minimizando
el coste del transporte.
a) calcular la solución óptima a partir de una solución inicial calculada por el método
del coste mínimo.
b) Debido a un rodeo que hay que dar por obras para llegar a la escuela E, el coste del
transporte desde cada barrio hasta dicha escuela se incrementa una unidad.
Explicar cómo modificará este hecho la solución óptima obtenida en el apartado
anterior.
3.-) Desde 3 pantanos se envía agua a 4 ciudades. La capacidad de los pantanos es de 15,
20 y 25 millones de litros diarios. Las demandas de las ciudades es de 8, 10, 12 y 15. El
coste de bombeo por millón de litros está dado en la siguiente tabla:
Problemas 10
PANTANO
CIUDAD
B
3
2
1
A
2
3
4
1
2
3
C
4
5
2
D
5
2
3
Utilizando el algoritmo del transporte, planificar los envíos de agua a las ciudades con el
mínimo coste.
4.-) Un problema de transporte se caracteriza por la siguiente matriz
D1
D2
D3
D4
D5
Existencias
14
16
17
12
18
120
18
12
21
16
22
190
20
15
19
18
19
60
17
13
25
20
21
160
80
100
120
110
60
En donde cada uno de los números de la matriz denota el coste unitario de transporte del
origen al destino correspondiente y los restantes números las existencias y las demandas.
Plantear la tabla de transporte con la que empezar a resolver el problema (No
resolverlo), teniendo en cuenta que no se pueden transportar más de 70 unidades desde
O1 hasta D4.
01
02
03
04
PROBLEMAS DE ASIGNACIÓN
1.-) Una escuela de Ingeniería decide realizar seminarios sobre 4 temas de actualidad.
Estos seminarios se realizarán una vez por semana. Al planificarlos, se ha procurado que
el número de estudiantes que no pueda asistir a un seminario sea mínimo. Un cuidadoso
estudio indica que el número de estudiantes que no pueden asistir a un seminario
particular un día específico es el siguiente
Lunes
Martes
Miércoles
Jueves
Viernes
Ecología
50
40
60
30
10
Energía
40
30
20
30
20
Transporte
60
40
30
30
10
Bioingeniería
20
30
20
30
30
Obtener la planificación óptima de los seminarios.
2.-) Para realizar 4 tareas (A,B,C,D), un empresario dispone de 3 empleados, cada uno de
los cuales cobra las siguientes cantidades por realizar cada tarea.
Problemas 11
1
2
3
A
10
14
18
B
12
18
15
C
8
16
16
D
15
12
14
Para poder realizar las cuatro tareas, el empresario puede optar entre: a) contratar a un
nuevo empleado, que cobraría 20 por realizar cualquier tarea, o b) que uno de sus
empleados realice 2 tareas, una de ellas en horas extraordinarias, de forma que tendría
que pagarle un 20 por ciento más que si la realizara en horario normal.
Determinar cuál de las 2 opciones es más ventajosa para el empresario, y
determinar la asignación de los empleados a las tareas, de forma que el coste total sea
mínimo.
3.-) Un millonario tiene 4 hijas muy feas, que no logran conseguir marido. Después de
muchos avatares, consigue convencer a 4 incautos, sobornándoles de acuerdo a los
gustos de cada uno, para que se casen con ellas. La cantidad de millones que tendrá que
pagar a los interesados amantes según con quien elijan casarse viene dado en la siguiente
tabla
Torrente
Rodríguez
Carpintero
Felipe Lotas
Bartol O. Me
Hija 1
2
10
Hija 2
3.5
22
Hija 3
5
34
Hija 4
6.5
46
8
0
14
6
20
12
26
18
Decidir los emparejamientos que comporten el menor gasto para el sufrido padre
Problemas 12
Referencia Histórica de la Investigación Operativa
Suele ser difícil hacer una referencia histórica de la Investigación Operativa.
Principalmente, porque no es sencillo establecer sus orígenes. Son muchas las áreas que
componen la Investigación Operativa, y hasta que apareció un elemento aglutinador en
los años 40 del siglo XX, cada una tuvo su propia referencia histórica, haciendo muy
difícil establecer la fecha exacta del nacimiento de la Investigación Operativa.
La necesidad de tomar decisiones es tan antigua como el hombre mismo, por
ello, hemos de preguntarnos por qué la Investigación Operativa nace en un momento
histórico preciso. Esto fue así, porque la realidad humana se fue complicando poco a
poco y las decisiones que en un principio eran triviales, se convirtieron en decisiones
difíciles. Con la llegada de la Revolución Industrial, la sociedad se hizo mucho más
compleja y las decisiones habían de tomarse con más cuidado porque involucraban a
más personas en sus consecuencias. Veamos a continuación lo que esto supuso
históricamente.
Proceso Introductorio
Las diferentes ciencias han de ser comprendidas con profundidad antes de poder ser
analizadas desde un punto de vista histórico. Quizás no sea fácil establecer los orígenes
de la Investigación Operativa, porque no se tuvo conciencia de la misma hasta mucho
más tarde de que algunas de sus ramas nacieran y se desarrollaran. No obstante, es
necesario relacionar el alumbramiento de la Investigación de Operaciones, por lo menos
nominalmente, con el transcurso de la II Guerra Mundial. Por esta razón, hemos de
pensar en los orígenes de la ciencia operacional como en los de una técnica de
naturaleza militar.
Dichos orígenes han supuesto una impronta decisiva en el tratamiento de las técnicas
operacionales. En este sentido, cuando se pretende trazar una historiografía de una
ciencia es muy importante delimitar la frontera de la misma en los terrenos conceptual e
histórico.
Prolegómenos y rudimentos de la Investigación Operativa: la
ciencia de la gestión
La gestión y la organización han sido necesarias para la humanidad desde sus albores.
La necesidad de planificación y organización aparece ya en el antiguo Egipto hacia el
año 4.000 a.C. y se va desarrollando a través de toda la Antigüedad hasta el
advenimiento del Imperio Romano. En Israel y China también aparecen tímidos
escarceos de organización y dirección hacia el año 1.000 a.C. Nabucodonosor establece
algunas ideas sobre control de la producción hacia el año 600 a.C. En Grecia, se
desarrollan en el 350 a.C. los primeros métodos de organización del trabajo y del
tiempo. Alrededor del año 30 a.C., Julio César establece diversas ideas de planificación,
control y unidad de mando, que luego pone en práctica en todo el Imperio Romano.
Todos los estudios y planteamientos organizacionales de la Antigüedad tienen su
proyección, que no su continuación, a lo largo de toda la Edad Media, en donde se
aprovechan sin posteriores desarrollos. Durante el siglo XV, en la Italia renacentista se
Historia
1
vuelven a plantear de nuevo las cuestiones organizativas y aparecen diversos estudios
sobre costes y sobre control de existencias.
No es fácil establecer otros hitos acerca de la organización hasta el siglo XVIII, cuando
Pierre de Montmort inicia sus primeras ideas directivas que luego dan lugar a la teoría
de juegos.
Con los inicios de la I Revolución Industrial, el sentido y la forma de estudio de la
Ciencia de la Gestión adquieren su ser más pleno. Por otra parte, el desarrollo de las
matemáticas durante los siglos XVIII y XIX permite disponer de las herramientas
necesarias para la futura construcción de la Investigación de Operaciones. De esta
forma, en 1767, Gaspard Monge descubre la manera geométrica de resolver un
programa lineal. Posteriormente, Adam Smith establece el principio de especialización
en los trabajos, y Robert Owen, ya en el siglo XIX, realiza un estudio sobre tareas en un
proceso productivo, y advierte de la necesidad de adiestramiento en las mismas por
parte de los operarios. Una aportación fundamental la realiza Babbage, en 1832,
construyendo lo que se podría llamar el primer computador digital, que vendría a ser el
antecesor de los modernos ordenadores. A finales del siglo XIX, Joseph Wharton hace
de la dirección estratégica e industrial un saber universitario. No obstante, el auge de las
revoluciones industriales del XIX permiten establecer un caldo de cultivo adecuado para
el estudio de la ciencia operacional. Así, Frederick W. Taylor y Henry L. Gantt, ante la
necesidad de planificación de la producción, establecen el método científico de
dirección y las gráficas de programación productiva (de Gantt), respectivamente. A
partir de este momento aparece la aportación nuclear del siglo XX a la Investigación de
Operaciones, sabiendo que es en esta centuria cuando se produce su nacimiento real.
Génesis de la Investigación Operativa en el siglo XX
Entre otros hechos que ayudaron a construir lo que se llamaría “investigación de
operaciones” o “investigación operativa” citaremos: a) los rudimentos de la teoría de
colas, con A.K. Erlang, y b) la construcción del modelo económico del tamaño del lote,
con F.W. Harris. Sin embargo, estos hitos que luego constituyeron elementos clave de la
Investigación Operativa, no permitieron establecer la misma como un saber
independiente.
Es hacia 1935 cuando Inglaterra se da cuenta de que necesita dar una respuesta
adecuada al creciente poderío militar alemán. Por esta razón, el gobierno inglés urge a
un grupo de científicos a que realicen experimentos que conduzcan a un mejor control
del espacio aéreo. Fruto de esta experimentación aparece el radar, que constituye el
inicio de la lucha por la supremacía aérea. Este grupo de investigadores tomó su base en
Bawdsey, y por esta razón se llamó grupo de Bawdsey.
De forma paralela, se estableció otro grupo durante 1936 para desarrollar el
experimento Biggin Hill, que permitía la simulación de aviones enemigos y su
detección. La conjunción de estos dos grupos, permitió ofrecer a la RAF (Royal Air
Force) una estructura operacional, para sus equipos materiales y humanos, que le
posibilitó librar la batalla de Inglaterra en 1940-41. El grupo de Bawdsey fue dirigido en
1938 por A.P. Rowe, el cual acuñó la expresión 'Operations Research', que
posteriormente se extendió dentro del ámbito científico al resto de países occidentales.
Historia
2
La batalla de Inglaterra se recrudece en el otoño de 1940. Por esta razón, se
solicita la ayuda de P.M.S. Blackett, un físico que después conseguirá el Premio Nobel
por sus trabajos en rayos cósmicos, con objeto de establecer una sección de
Investigación Operativa dentro de los comandos de acción de la RAF. Del mismo modo,
Blackett fue consultado en diciembre de 1941, sobre la posibilidad de constituir una
sección similar dentro de la Armada. Dicha sección fue constituida en enero de 1942.
Los dos primero miembros del grupo eran fisiólogos, otros dos eran físicosmatemáticos, un astrofísico, un oficial del Ejército y un ex-topógrafo. El equipo se
completó más tarde con un tercer fisiólogo, un físico general y dos matemáticos. Se les
conoció como el “ Circo de Blackett “, Es evidente que en este grupo de 11 científicos
se tenía una amplia gama de disciplinas. El grupo creció y luego se dividió en dos, uno
del Ejército y otro de la Marina, con lo cual, las fuerzas militares de la Gran Bretaña
tuvieron todas un grupo de investigación de operaciones encargado de la investigación
militar.
Cuando los Estados Unidos entran en la guerra, son conscientes de la necesidad
de tales grupos operativos y de la constitución de secciones operacionales para el éxito
de los mismos. De esta manera, constituyen en 1942 un grupo operacional de lucha
antisubmarina (ASWORG - Anti-Submarine Warfare Operations Research Group) que
recoge toda la experiencia inglesa desarrollada por Blackett. De forma similar, la Fuerza
Aérea Americana estructura diversos grupos operacionales para llevar a cabo sus
labores logísticas. Al final de la guerra, la Armada americana disponía de un
departamento de Investigación Operativa compuesto por más de setenta científicos, y la
Fuerza Aérea disponía de más de dos docenas de secciones operacionales.
No puede decirse que las potencias del Eje hicieran uso de las técnicas
operacionales durante la II Guerra Mundial, mientras que el número de científicos e
investigadores involucrados en Investigación Operativa en la contienda por parte de
ingleses, americanos y canadienses superó los setecientos. Las aportaciones que
hicieron todos estos investigadores supusieron un giro copernicano en la manera de
concebir la Ciencia de la Gestión en los años siguientes. De alguna manera, todos estos
estudiosos que trabajaban de manera aislada en los años treinta se aglutinaron
holísticamente con ocasión de la guerra, y produjeron un conjunto de técnicas y teorías
que ocasionaron el alumbramiento de la Investigación de Operaciones como ciencia.
Investigaciones sobresalientes durante la segunda guerra mundial:
El sónar
("Sound navigation ranging") Técnica para detectar y determinar la distancia y
dirección de objetos bajo el agua mediante señales acústicas. Las ondas sonoras
emitidas por o reflejadas desde el objeto son detectadas por el aparato de sónar y
analizadas para extraer la información.
Historia
3
El sónar se propuso en un primer momento para la detección de icebergs. El
interés en el sónar aumentó con su aplicación en los submarinos de la primera guerra
mundial. En el campo militar hay un largo número de sistemas que detectan, identifican
y localizan submarinos. El sónar se usa también para la detección de minas, torpedos.
Usos no militares son búsqueda de peces, mapeado del fondo del mar y localización
acústica de barcos.
El descifrado de códigos emitidos por la máquina cifradora Enigma.
(referencia: “códigos secretos” de Simon Singh)
Historia
4
Historia
5
Bletchley Park es el nombre de una instalación militar localizada en Buckinghamshire, Inglaterra en la
que se realizaron los trabajos de descifrado de códigos alemanes durante la Segunda Guerra Mundial.
Recibe su nombre de la mansión victoriana que domina el enclave. La primera computadora Colossus fue
diseñada y construida en Bletchley Park permitiendo romper los códigos de la máquina alemana Enigma.
Existía un centro, en otro pueblo, dónde interceptaban las señales de radio de los
alemanes, con multitud de antenas para la intercepción. Posteriormente se hacían 2
copias; una se quedaba en este centro y la otra se enviaba a Bletchley para su
descifrado. Ahí el trabajo se dividía en la que se denominaban cabañas, con numeración
para cada una de ellas, cabaña 1, cabaña 2,...Dentro de las cabañas se dividían en
sectores, y los sectores en secciones. El personal era civil y era reclutado en función de
sus aptitudes para cada una de las secciones, sectores y cabaña correspondiente, yendo
de la gente de la cabaña 8 con gente que se dedicaba a descifrar los mensajes alemanes
con analistas en criptografía, que provenían de distintas nacionalidades y también de
distintas disciplinas como matemáticos, físicos, ... , como también ocurre en
Investigación de Operaciones que está integrada por distintas disciplinas; mientras que
la cabaña 2 se dedicaba únicamente a pasar los textos y a archivar información, con
personal mayoritariamente femenino, aún pudiendo tener aptitudes para estar en cabaña
8 pero por ser mujeres se las relegaba a puestos administrativos.
El director de la sección naval enigma era Alan Turing.
Historia
6
Después de la guerra, su carrera profesional de Turing se vio truncada cuando
lo procesaron por su homosexualidad. En 1952 Arnold Murray, el amante de Turing,
ayudó a un cómplice a entrar en la casa de Turing para robarle. Turing acudió a la
policía a denunciar el delito. Como resultado de la investigación policial, Turing fue
acusado de mantener una relación sexual con un varón de 19 años y se le imputaron los
cargos de "indecencia grave y perversión sexual". Convencido de que no tenía de qué
disculparse, no se defendió de los cargos y fue condenado. Según su ampliamente
difundido proceso judicial, se le dio la opción de ir a prisión o de someterse a un
tratamiento hormonal de reducción de la libido. Finalmente escogió las inyecciones de
estrógenos, que duraron un año y le produjeron importantes alteraciones físicas, como la
aparición de pechos o un apreciable aumento de peso, y que además le convirtieron en
impotente. Dos años después del juicio, en 1954, murió por envenenamiento con
cianuro, aparentemente tras comerse una manzana envenenada que no llegó a ingerir
completamente. La mayoría piensa que su muerte fue intencionada y se la consideró
oficialmente como un suicidio
Gordon Brown se disculpa ante Alan Turing
Publicado el 11-9-2009 a las 08:48 por
F. Figueroa Fagandini
Estatua conmemorativa de Alan Turing en Sackville Park (cc) Wikimedia Commons
El sitio Number 10 es, según ellos mismos dicen, el sitio oficial del Primer Ministro del Reino Unido.
No el sitio de Gordon Brown sino el de todos los primeros ministros que han habitado la casa que
está en Downing Street número 10 desde 1721. A través de ese canal, la gente puede entre otras
cosas enviar peticiones, y la más bullada del último tiempo fue la exigencia, 55 años después de
su muerte, de disculpas públicas para Alan Turing.
Historia
7
Este señor, para los que no lo sepan, trabajó con el gobierno británico durante la segunda guerra
mundial desencriptando códigos interceptados a la Alemania nazi, una tarea a través de la cual
desarrolló gran parte de lo que hoy conocemos como ciencias de la computación. Estableció las
bases para distintas líneas de estudio que hoy son nuestra fuente de trabajo: la cibernética, la
inteligencia artificial, el concepto de algoritmo y diagrama de flujo para ejecución de programas y
la Tésis de Church-Turing que a su modo es la piedra pilar de la computación actual.
Alan Turing tuvo un final muy triste, luego de que reconociera abiertamente su homosexualidad -a
la sazón un delito en el Reino Unido- y fuera condenado a la castración química, una circunstancia
que lo llevó al suicidio un par de años más tarde.
Ayer, Gordon Brown emitió un comunicado reconociendo que el trato recibido por Alan Turing fue
inaceptable. En un extenso comunicado recorre someramente los méritos de Turing para cerrar
diciendo: “Lo siento Alan Turing, merecías algo mucho mejor”.
Link: Treatment of Alan Turing was “appalling” - PM (Number10)
Historia
8
El Proyecto Manhattan
El 6 de diciembre de 1941, un día antes del ataque japonés a Pearl Harbor,
Vannevar Bush, jefe del Departamento de Investigación y Desarrollo Científico de
Estados Unidos, lograba la aprobación presidencial de un plan de acción total en el
ámbito de la investigación atómica. En 1942, el primer ministro británico W. Churchill
y el presidente norteamericano F. D. Roosevelt acordaron concentrar en el territorio
estadounidense los equipos científicos de ambos países que ya trabajaban en la bomba.
La dirección general del llamado Proyecto Manhattan recayó en el Comité Militar
Político, compuesto por tres militares, los generales Styer, Groves, y el almirante
Purnell, y por dos civiles, V. Bush y J. B. Conant. Vannevar Bush, ingeniero
electricista, había sido vicepresidente del Massachusetts Institute of Technology, y
James B. Conant, químico orgánico, había sido presidente de la Universidad de
Harvard.
Cerca de 150 000 personas llegaron a participar en el Proyecto, la mayoría de
ellas sin saber cuál era su objetivo. No más de una docena de individuos tenía una
visión global de la empresa. Los científicos que accedieron a entregarse totalmente a la
construcción de un arma nuclear lo hicieron convencidos de la necesidad de contar con
tal recurso si es que Hitler también lo obtenía. Muchos opinaban que, una vez logrado
un equilibrio entre ambos bandos en guerra, se debería renunciar al uso del artefacto. La
existencia de una bomba alemana era una idea siempre presente en sus mentes, hasta el
punto de referirse a ella como si fuese una realidad.
El 17 de septiembre de 1942, el general Leslie Richard Groves fue nombrado
jefe del supersecreto y superprioritario Proyecto Manhattan. Se construyeron tres
ciudades para realizar los diferentes trabajos:
-
Oak Ridge en el estado de Tennessee, donde se trabajaba en la separación
del uranio para obtener el isótopo fisionable 235.
Hanford en el estado de Washington, donde se producía otro isótopo
fisionable, el plutonio 239.
Los Álamos en Nuevo México, donde se diseñaban y fabricarían las
primeras tres bombas.
Muy importante para estos proyectos fue la labor dirigida por Fermi en el
Laboratorio Metalúrgico de la Universidad de Chicago, que culminó con la puesta en
marcha en diciembre de 1942 del primer reactor nuclear. Inmediatamente después de
este logro, el gobierno norteamericano destinó 400 millones de dólares al Proyecto
Manhattan. Los costos totales se estiman en unos 3 000 millones de dólares.
Historia
9
Fermi
Einstein,
Historia
10
Oppenheimer
Niels Bohr y Albert Einstein debatiendo la teoría cuántica en casa de Paul Ehrenfest en Leiden
(deciembre de 1925).
El crecimiento de la Investigación Operativa, de 1945 a la actualidad
Es muy difícil condensar en unas líneas todo lo que han supuesto las décadas
anteriormente mencionadas para la ciencia operacional, habida cuenta de su importancia
y de la riqueza de trabajos producidos. Realmente, se ha construido más ciencia
operacional
durante
estos
Historia
11
años que en todo el resto de la historia de la humanidad. Puede decirse, por tanto, que la
verdadera historia de la Investigación Operativa se ha desarrollado durante este período:
se han establecido líneas de investigación, han aparecido sociedades profesionales, se
han creado revistas de investigación, se han publicado libros y se ha incluido la materia
dentro del currículum educativo.
Una vez finalizó la segunda guerra mundial y habida cuenta del éxito cosechado
por las técnicas operativas, éstas continuaron desarrollándose dentro del ámbito militar,
puesto que era el ejército quien poseía la mayor parte de los investigadores y quien
estaba interesado en proseguir dicha línea de trabajo. A mediados de los años cincuenta
se desplazó el centro de gravedad de interés de la Investigación Operativa, y alcanzó el
terreno industrial y el académico. Aparece el interés por la Ciencia de la Gestión
(Management Science). En la década de los setenta, ha continuado el desarrollo
expansivo de la Investigación Operativa, llegando al ámbito de la administración
pública, tratando los siguientes tipos de problemas: transporte urbano, administración de
justicia, construcción de edificios públicos, educación, hospitales y servicios sociales.
De esta manera, el peso investigador de la Investigación Operativa se desplaza desde el
Reino Unido a los Estados Unidos, en donde se constituyen diversos institutos y
organizaciones de estudio, como The Urban Institute (1968) y The New York CityRand Institute (1969). También, son muchas las empresas que, a partir de los años
cincuenta, se ayudan de técnicas operativas para diseñar sus políticas de producción y
de distribución.
Por ejemplo, a partir de una encuesta que realiza Turban en 1972 en Estados
Unidos sobre las 500 empresas más importantes del país (de acuerdo con la revista
Fortune), se deduce que la mitad de las empresas que contestaron la encuesta poseían un
departamento especial dedicado a tareas de Investigación de Operaciones o Ciencia de
la Administración. No obstante, la Investigación Operativa forma cada día más, una
parte de las actividades normales de la empresa moderna y, por tanto, ya no se trata de
una función especializada que deba llevarse a cabo en un departamento separado. De
acuerdo con este estudio las técnicas operacionales más empleadas eran el análisis
estadístico, la simulación, la programación lineal, la teoría de inventarios y la
programación dinámica. Otras técnicas empleadas, aunque de menor uso, eran la
programación no lineal, las líneas de espera, la teoría de juegos, el análisis de decisión
de Bayes y la programación entera.
Posteriormente, se realizaron otras encuestas de resultados similares: a) en 1977,
Leadbetter y Cox (1977); b) en 1979, Thomas y DaCosta (1979); c) en 1983, Forgionne
(1983). En todas ellas se comprueba cómo cada vez son mayores en número las técnicas
operativas empleadas, y cómo dichas técnicas aparecen con más frecuencia en otras
áreas o departamentos de la empresa. Estudios de otro tipo fueron los de Fabozzi y
Valente (1976) que encuestaron, en 1976, mil compañías americanas en relación con el
uso de la programación matemática (programación lineal, no lineal y dinámica). Estos
autores descubrieron que era la dirección de Producción (mezclas de productos,
asignación de recursos, diseño de planta y maquinaria,...) el área en donde más se
aplicaba la Investigación de Operaciones dentro del ámbito de la empresa. En número
de aplicaciones le seguía el área de Inversión y Financiación.
Especificaciones y concreciones históricas de la Investigación Operativa: la
programación matemática
Historia
12
La Programación Matemática ha formado parte de la Investigación Operativa
desde la constitución de la misma como ciencia hasta la actualidad. Sin embargo,
muchos de los problemas tratados por la Programación Matemática eran conocidos
desde mucho antes. Grandes matemáticos de los siglos XVIII y XIX, como Euler,
Gauss y Lagrange trabajaron en problemas de optimización con restricciones y
establecieron las primeras condiciones de optimalidad. Lo cual quiere decir que los
problemas que la Programación Matemática planteaba en los años cuarenta de nuestro
siglo no eran nuevos en su formulación, pero sí en su enfoque. Los métodos
matemáticos clásicos no estaban pensados para una resolución en dimensiones altas,
como iban a requerir las nuevas necesidades industriales. Esta fue la aportación de la
ciencia operacional, máxime cuando se desarrollaron las técnicas computacionales que
permitieron hacer realidad el cálculo rápido y a gran escala. La Investigación Operativa
supuso un giro copernicano en la manera de tratar los programas matemáticos. Se
implementaron algoritmos que computacionalmente eran más eficientes que los clásicos
y, de esta manera, problemas que tradicionalmente habían sido complejos, ahora
resultaron asequibles.
El cambio de mentalidad era notable y, por tanto, un nuevo modelo científico se
estaba abriendo paso. Para el desarrollo de las distintas técnicas algorítmicas, era básico
el estudio de los sistemas de desigualdad como habían hecho los matemáticos Julius
Farkas, Jean Baptiste Fourier y T.S. Motzkin. El análisis de los problemas económicos
se debe a John Von Neumann y a Abraham Wald. No obstante, cuando se trata de
presentar una descripción histórica de la Programación Matemática, hay que tener en
cuenta la gran aportación de Dantzig con su método simplex para programación lineal.
Este hito ha supuesto la demarcación de la época fundacional de la Programación
Matemática. Dicho evento se ha considerado como el inicio de la Investigación
Operativa, puesto que lo ha sido de la programación lineal, y ha traído consigo la
resolución de muchos problemas operacionales.
George Bernard Dantzig nació en 1914 y murió en 2005. Su padre era profesor de Matemáticas, se retiró dejando su
puesto de Jefe del Departamento de Matemáticas en la Universidad de Maryland poco después de la Segunda Guerra
Mundial. Su madre era una lingüista especializada en idiomas eslavos. Dantzig estudió su carrera en la Universidad de
Maryland, donde se graduó en 1936. Le disgustaba el hecho de no haber visto "ni una sola aplicación en alguno de los
cursos de Matemáticas que había tomado en Maryland". Al año siguiente hizo estudios de posgrado en la escuela de
Matemáticas de la Universidad de Michigan. Sin embargo, exceptuando la Estadística, le pareció que los cursos eran
demasiado abstractos; "tan abstractos, que él sólo deseaba una cosa: abandonar sus estudios de posgrado y conseguir
Historia
13
un trabajo".
En 1937 Dantzig dejó Michigan para trabajar como empleado en Estadística en el Bureau of Labor Statistics. Dos años
después se inscribía en Berkeley para estudiar un Doctorado en Estadística.
La historia de la tesis doctoral de Dantzig es ahora parte del anecdotario de las Matemáticas. Durante su primer año en
Berkeley, llevó un curso de Estadística con el famoso Jerzy Neymann. En una ocasión llegó tarde a una de las clases de
Neymann. En la pizarra estaban escritos dos problemas que él supuso eran problemas de tarea. Dantzig,
consecuentemente, los copió y los resolvió, aun cuando le parecieron "un poco más difíciles que los problemas
ordinarios". Unos días después se los entregó a Neymann, disculpándose por haber llegado tarde.
Aproximadamente seis semanas después -a las 8:00 de un domingo por la mañana-, Neymann llegó aporreando la puerta
de Dantzig, explicándole que había escrito una introducción a uno de los artículos de Dantzig y que quería que la leyera a
fin de poder enviar el artículo para su publicación. Los dos "problemas de tarea" que Dantzig había resuelto eran, en
realidad, dos famosos problemas no resueltos de la Estadística. Las soluciones de estos problemas se convirtieron en su
tesis doctoral, a sugerencia de Neymann.
NOTA: Parece ser que esta anécdota inspiró escenas de la película que lanzó a la fama a Matt Damon “El indomable Will
Hunting”. Lo que el propio Dantzig reveló es que se trata de una leyenda urbana, pues dista mucho de la realidad.
Poco después del comienzo de la Segunda Guerra Mundial se unió a la Fuerza Aérea de Estados Unidos y trabajó con el
Combat Analysis Branch of Statistical Control. En 1946, Después de recibir su Doctorado, regresó a la Fuerza Aérea como
el asesor de Matemáticas del U. S. Air Force Controller. Fué en ese trabajo donde encontró los problemas que le llevaron
a hacer sus grandes descubrimientos. La Fuerza Aérea necesitaba una forma más rápida de calcular el tiempo de duración
de las etapas de un programa de despliegue, entrenamiento y suministro logístico.
El trabajo de Dantzig generalizó lo hecho por el economista, ganador del Premio Nobel, Wassily Leontief. Dantzig pronto
se dio cuenta de que los problemas de planeación con los que se encontraba eran demasiado complejos para las
computadoras más veloces de 1947 (y aun para las de la actualidad). La siguiente es la explicación de Dantzig acerca de
las dificultades que tuvo que encarar: "Un ejemplo sencillo ilustra la dificultad fundamental de formular un problema de
planeación utilizando un enfoque de análisis de actividades. Considere el problema de asignar 70 hombres a 70 empleos.
Una "actividad" consiste en asignar el iésimo hombre al jésimo empleo. Las restricciones son dos: en primer lugar hay 70
hombres, cada uno de los cuales debe asignarse a un puesto y en segundo lugar, cada uno de los 70 puestos existentes
debe estar ocupado. El nivel de una actividad puede ser 1, lo cual indica que está siendo usada, o 0, lo cual significa que
no. En consecuencia hay 2 x 70 = 140 restricciones y 70 x 70 = 4900 actividades con 4900 variables correspondientes de
decisión uno-cero. Por desgracia también hay factorial de 70 permutaciones o formas de hacer las asignaciones. El
problema consiste en comparar el factorial de las 70 formas y elegir la que sea la óptima o "mejor" según algún criterio
Historia
14
previamente establecido.
En el ejemplo anterior,factorial de 70 es un número muy grande. A fin de tener una idea de qué tan grande es,
supóngase que se hubiese tenido una computadora IBM del tipo mainframe en el instante en el que ocurrió el Big Bang
hace quince millones de años. ¿Habría podido, entre ese entonces y ahora, examinar todas las soluciones posibles? ¡No!
No obstante, supóngase que se hubiese tenido una computadora aun más poderosa, una que pudiese examinar mil
millones de asignaciones por segundo. La respuesta seguiría siendo negativa. Aún si la tierra se llenase con computadoras
cuyas rapideces fueran de nanosegundos, todas ellas trabajando en paralelo, la respuesta aún sería no. Sin embargo, si
existiesen diez tierras, todas llenas con computadoras del tipo mencionado, todas programadas en paralelo desde el
instante del Big Bang hasta que el sol fuese una esfera fría, entonces quizás la respuesta podría ser sí. Lo notable es que
el método símplex, con la ayuda de una computadora moderna, puede resolver este problema en una fracción de
segundo".
Antes de que Dantzig pudiese descubrir el método símplex, le fue necesario primero tener un modelo práctico de
Programación Lineal. He aquí la descripción de Dantzig del proceso: "Cuando el problema de la planeación fue formulado
inicialmente para la Fuerza Aérea, no existía la noción exacta de una función objetivo, la idea de una meta claramente
definida. Por supuesto, teníamos sólo un falso respeto hacia el concepto de objetivo. En el discurso de los militares
escuché a menudo decir, "nuestro objetivo es ganar la guerra" En el mundo de los negocios se escucharía quizás "nuestro
objetivo es obtener ganancias". Sin embargo, era imposible hallar alguna relación directa entre la meta establecida y las
acciones emprendidas para tal fin. Si se estudiaba con cuidado el paso siguiente, se podía ver que algún líder había
promulgado un montón de reglas básicas que, en su concepto, llevarían hacia la meta. Esto distaba mucho de lo que sería
honestamente estudiar todas las combinaciones alternativas de las acciones para elegir la mejor combinación. Los que
mandan generalmente mueven las manos y dicen "He considerado todas las alternativas", pero es casi siempre basura.
Lo más probable es que no pudiesen estudiar todas las combinaciones. Antes de 1947 era inconcebible pensar en la
existencia de una herramienta como la Programación Lineal que permitiese examinar millones de combinaciones. No
había algoritmo o herramienta computacional que pudiera hacer eso.
No descubrí el modelo de la Programación Lineal en un instante, sino que tuvo un proceso de evolución. Se dedicó casi un
año completo a la tarea de decidir si mi modelo podría ser utilizado en la formulación de problemas prácticos de
distribución de tiempos. Como usted sabe, la planeación y la distribución de tiempos se llevaron a una escala inmensa
durante la guerra.El funcionamiento de la Fuerza Aérea fue equivalente al funcionamiento de la economía de toda una
nación. En el proceso intervinieron cientos de miles de personas. La logística tuvo una magnitud difícil de entender para
alguien que no haya estado ahí. Mi colega Marshall Wood y yo revisamos miles de situaciones tomadas de nuestra
experiencia durante la guerra.
Esta intuición llevó a la primera formulación del método símplex en el verano de 1947. El primer problema práctico que se
resolvió con este método fue uno de nutrición (el famoso problema de la dieta).
El 3 de octubre de l947 Dantzig visitó el Institute for Advanced Study donde conoció a John von Neumann, quien por
entonces era considerado por muchos como el mejor Matemático del mundo. Von Neumann le platicó a Dantzig del
trabajo conjunto que estaba realizando con Oscar Morgenstern acerca de la teoría de juegos. Fue entonces cuando
Dantzig supo por primera vez del importante teorema de la dualidad.
En 1976 el presidente Gerald Ford otorgó a Dantzig la Medalla Nacional de Ciencias, que es la mención más alta de los
Estados Unidos en Ciencia. En la ceremonia en la Casa Blanca se citó a George Bernard Dantzig "Por haber inventado la
Programación Lineal, por haber descubierto métodos que condujeron a aplicaciones científicas y técnicas en gran escala a
problemas importantes en logística, elaboración de programas, optimización de redes y al uso de las computadoras para
hacer un empleo eficiente de la teoría matemática".
Historia
15
FOTO DE G. B. DANTZIG Y L. G. KHACHIAN
Realmente, el nuevo estilo marcado por el método simplex ha construido el auténtico
espíritu de la optimización matemática. A principios de la década de los sesenta,
Abraham Charnes y William Cooper (1961) publicaron un libro de gran influencia para
los años posteriores: Management Models and Industrial Applications of Linear
Programming. Esta obra supuso un gran impacto en el desarrollo de la práctica y de las
aplicaciones industriales de la programación lineal (principalmente en las compañías
petrolíferas y químicas). Pudo comprobarse la potencia de esta nueva herramienta, a la
hora de resolver los problemas decisionales de las grandes empresas. De igual modo, se
aplicó la programación lineal a la teoría económica como muestran las aportaciones de
Historia
16
Robert Dorfman, Paul Samuelson y Robert Solow (1958), o las de David Gale (1960), o
bien las de Gérard Debreu (1963).
Nuevos desarrollos de la programación lineal
La Programación Lineal fue una de las primeras herramientas cuantitativas con
la que contó la Investigación Operativa. Rápidamente se descubrió su eficiencia. Por
esta razón, era muy interesante conseguir nuevos métodos de resolución que hicieran la
competencia al algoritmo simplex.
Como una innovación destacable en los años ochenta aparece un nuevo y
poderoso algoritmo para la resolución de programas lineales: en 1984, Narendra
Karmarkar (1984) de AT&T Laboratories publicó un artículo presentando
esquemáticamente un método para resolver programas lineales de gran tamaño. Este
método llamado algoritmo de Karmarkar se presenta como un buscador de óptimos a
partir de puntos interiores, siendo ésta la gran novedad en relación con el método
simplex.
Dicho artículo de Karmarkar no describe totalmente el método resolutorio y,
además, afirma que es mucho más rápido que el simplex para problemas de gran
dimensión. El intento de descubrimiento de un remedo de dicho método puso a toda la
comunidad científica en pie de búsqueda. Pasaron cuatro años hasta que se logró un
conocimiento general del método y su distribución comercial. Esta extensión del
algoritmo de Karmarkar fue debida a AT&T Laboratories, que llamó a esta versión
'AT&T KORBX Linear Programming System'. La instalación completa de esta versión
tuvo un costo inicial de $8.900.000.
Desde un principio se realizaron multitud de comparaciones entre el método
simplex y el de Karmarkar, con objeto de determinar cuál de los dos era el más
eficiente. Sin embargo, esto no es fácil de determinar puesto que hay que especificar
qué es exactamente lo que significa eficiencia. Es necesario efectuar la comparación en
multitud de situaciones diversas y a partir de ellas establecer la correspondiente tesis. Se
han realizado estudios que cotejan el método de Karmarkar con un paquete informático
estándar del método simplex llamado MINOS. Para problemas de tamaño grande (a
partir de varios miles de restricciones) las mejoras en tiempo de cálculo del método de
Historia
17
Karmarkar sobre el simplex son notables (factores entre 10 y 50 son comunes). No
obstante, esta situación no supone la supremacía del método de Karmarkar en todo tipo
de problemas. No hay que olvidar que para problemas de dimensión pequeña, el método
simplex es más intuitivo y fácil de aplicar.
También es posible realizar algunos comentarios acerca de la complejidad
computacional de cada uno de los métodos. El método de Karmarkar es un algoritmo de
tiempo polinomial, mientras que el simplex no goza de esta propiedad, sino que es de
tiempo exponencial. De esta forma, tenemos explicada la razón por la cual el método de
Karmarkar obtiene mejores resultados para problemas de gran dimensión.
Es llamativo que los problemas que hasta hace unos años necesitaban de
computadoras de tamaño medio, ahora sean resolubles mediante ordenadores
personales. En la actualidad, prácticamente cualquier usuario de la Investigación
Operativa puede resolver problemas lineales mediante LINDO (u otro paquete
informático semejante) en un ordenador portátil.
De esta manera, mediante LINDO se pueden manejar problemas con hasta
50.000 restricciones y 200.000 variables. De igual modo, se desarrolló el paquete
MINOS (empleando para programación lineal el método simplex) en el Systems
Optimization Laboratory del Departamento de Investigación Operativa de la
Universidad de Stanford, que ha sido usado más frecuentemente como herramienta
optimizadora en programación no lineal. Otros lenguajes de modelización se han
desarrollado para ordenadores personales.
Así, ha aparecido GAMS/MINOS que es una combinación de los dos programas
bien conocidos con objeto de construir un lenguaje de modelización algebraica
implementado por IBM. De la misma forma, ha aparecido el paquete XPRESS-LP; y el
lenguaje MPL (Mathematical Programming Language) desarrollado por Maximal
Software en Islandia. Esta misma casa produjo la utilidad Turbo-Simplex.
En los años noventa fueron apareciendo otras utilidades informáticas, como son
las hojas de cálculo y sus complementos asociados, capaces de resolver programas
lineales. Entre algunos de estos complementos se pueden citar los siguientes: Solver,
VINO, What's Best? y XA. Casi todas estas utilidades fueron construidas por IBM para
sus propias computadoras, sin embargo, poco a poco, se van obteniendo versiones para
Macintosh.
Aunque estas son las más recientes aplicaciones informáticas de los últimos
cinco años, en los próximos años se mejorarán, a la vez que se extenderán los lenguajes
y paquetes informáticos que permitirán resolver con relativa facilidad problemas de
programación lineal complejos.
Películas relacionadas:
Enigma (2001). Director: Michael Apted. Dougray Scott, Kate Winslet, Saffron
Burrows, Jeremy Northam, Corin Redgrave, Tom Hollander, Nikolaj Coster-Waldau, Donald Sumpter,
Matthew Macfadyen
Historia
18
U-571 (2000). Director: Jonathan Mostow. Matthew McConaughey, Bill Paxton, Harvey
Keitel, Jon Bon Jovi, David Keith, Thomas Kretschmann, Jake Weber, Jack Noseworthy
Una mente maravillosa (2001). Director: Ron Howard. Russell Crowe, Jennifer
Connelly, Ed Harris, Paul Bettany, Adam Goldberg, Christopher Plummer, Judd Hirsch, Josh Lucas,
Anthony Rapp
Otras:
Sobre Hitler:
Hitler, el reinado del mal (2003). DIRECTOR Christian Duguay Robert Carlyle, Stockard
Channing, Jena Malone, Julianna Margulies, Matthew Modine, Liev Schreiber, Peter Stormare, Friedrich
von Thun, Peter O'Toole
Sobre Pearl Harbor (y/o equipos de descifrado de código)
Pearl Harbor (2001) DIRECTOR Michael Bay REPARTO Ben Affleck, Josh
Hartnett, Kate Beckinsale, Cuba Gooding Jr., Alec Baldwin, Jon Voight, Tom
Sizemore, Dan Aykroyd, Colm Feore, Cary-Hiroyuki Tagawa, Matthew Davis, Ewen
Bremner, Jaime King, William Fichtner, John Diehl, Leland Orser, Tomas Arana,
Jennifer Garner
Tora! Tora! Tora! (1970) DIRECTOR Richard Fleischer, REPARTO Jason Robards,
Martin Balsam, Soh Yamamura, Tatsuya Mihashi, E.G. Marshall, Joseph Cotten, James
Whitmore, George Macready, Neville Brand
La batalla de Midway (1976). DIRECTOR Jack Smight REPARTO Charlton Heston, Edward
Albert, Henry Fonda, James Coburn, Glenn Ford, Robert Mitchum, Toshiro Mifune, Hal Holbrook, Cliff
Robertson, Robert Wagner
Creadores de Sombras (1990) DIRECTOR Roland Joffé REPARTO Paul Newman, Dwight Schulz,
Laura Dern, Bonnie Bedelia, John Cusack, Natasha Richardson, John McGinley, Ron Vawter, Ron
Frazier, Clark Gregg
Historia
19
INVESTIGACIÓN OPERATIVA:
Es la aplicación del método científico para asignar los recursos o actividades de forma
eficaz, en la gestión y organización de sistemas complejos
Tema 1. Modelos de programación lineal y aplicaciones.
Formulación de modelos de programación lineal
Un problema de programación se refiere, en general, al uso o asignación
(reparto) de una serie de recursos (dinero, material, trabajadores,...) de “la mejor
manera posible”, es decir, de manera que se maximicen las ganancias o se
minimicen los costes (de utilización de dichos recursos).
Para que un problema de programación se diga lineal ha de cumplir dos
características:
1. La regla o criterio para seleccionar los mejores valores de las
variables usadas para construir el problema se puede escribir como
una ecuación lineal de las mismas (sin potencias de grado mayor que
1 - Metodo del Simplex
uno, sin productos cruzados, ...), que habrá que maximizar /
minimizar. A esta función se la llama función del objetivo.
Z=c1x1+c2x2+...+cnxn
2. Las relaciones existentes entre las variables del problema (también
llamadas restricciones) se pueden escribir como un conjunto de
ecuaciones o inecuaciones lineales de las variables anteriores. A este
conjunto de ecuaciones se le denomina conjunto de restricciones.
a11x1+a12x2+...+a1nxn (≤, ≥, =) b1
a21x1+a22x2+...+a2nxn (≤, ≥, =) b2
...
am1x1+am2x2+...+amnxn (≤, ≥, =) bm
m filas o ecuaciones y n variables o incógnitas
¿Cómo “escribir” un problema de programación lineal? Debemos conocer (en
este orden):
1) Las variables del problema xi (variables de decisión o actividad)
2) El conjunto de restricciones
3) La función del objetivo que habrá que maximizar o minimizar, Z
2 - Metodo del Simplex
Ejemplo:
"Una compañía armamentística americana desea proyectar la fabricación de un
cohete antitanque casero para vender en supermercados. La compañía ha
considerado 3 modelos y su departamento de producción ha elaborado la siguiente
tabla:
MODELO
A
B
C
Trabajo
(horas/unidad)
7
3
6
Material
(titanio/unidad)
4
4
5
Beneficios (por
unidad
fabricada)
40$
20$
30$
El suministro de material se restringe a 200 kg de titanio por día, y la disponibilidad
total diaria de los trabajadores es de 150 horas. Formular un problema de
programación lineal para determinar la producción diaria de cada modelo, en orden
a maximizar el beneficio total."
1. Identificación de las variables:
X1= "unidades diarias a producir del modelo A"
X2 = "unidades diarias a producir del modelo B"
X3 = "unidades diarias a producir del modelo C"
2. Restricciones:
Las restricciones vienen dadas por los límites de disponibilidad de los dos
recursos: trabajo y material.
1 unidad modelo A lleva 7 horas de trabajo, entonces X1 unidades -> 7· X1
1 unidad modelo B lleva 3 horas ... X2 unidades -> 3· X2
1 unidad modelo C lleva 6 horas ... X3 unidades -> 6· X3
TOTAL Horas de trabajo: 7· X1+3· X2+6· X3
1 unidad modelo A necesita 4 ... X1unidades -> 4· X1
1 unidad modelo B necesita 4 ... X2 unidades -> 4· X2
1 unidad modelo C necesita 4 ... X3 unidades -> 5· X3
TOTAL Material: 4· X1+4· X2+5· X3
Tendremos, por tanto que:
3 - Metodo del Simplex
7· X1+3· X2+6· X3 ≤150
4· X1+4· X2+5· X3 ≤200
3. Función objetivo:
MODELO
BENEFICIO POR
UNIDAD
UNIDADES
PRODUCIDAS
A
40
X1
40 X1
B
20
X2
20 X2
C
30
X3
30 X3
Tendremos, por tanto:
Z = 40· X1 + 20· X2 + 30· X3
Por último, tendríamos la formulación completa del problema:
Maximizar Z = 40X1 + 20X2 + 30X3
Sujeto a:
7X1+3X2+6X3 ≤150
4X1+4X2+5X3 ≤200
X1 ≥ 0
X2 ≥ 0
X3 ≥ 0
X1, X2, X3 enteros
4 - Metodo del Simplex
Solución gráfica de problemas de programación lineal con 2 variables
Z = 40x1+36x2
x1 ≤
Ejemplo: Minimizar
Sujeto a
8
x2 ≤ 10
5x1+3x2 ≥ 45
x1,x2 ≥ 0
Resolver el p.p.l. es encontrar un par de valores (x1opt, x2opt) que cumplan las
restricciones y hagan mínima la función del objetivo
a)
x1=8
x2=10
Satisface las restricciones
b)
x1=7
x2=9
Satisface las restricciones
ambas son soluciones factibles
Z(a)=40•8+36•10=680
Z(b)=40•7+36•9=604
b es “mejor” solución que a (estamos minimizando)
El conjunto de todas las soluciones factibles de un problema de
programación lineal (p.p.l.) se llama región factible. Resolver un p.p.lineal es
encontrar la mejor solución factible en la región factible. Esta última se llama
solución óptima.
Gráficamente:
5 - Metodo del Simplex
5x1+3x2≥45
puntos
Æ5x1+3x2=45
Ec. Recta pasa por los
x1=0 Æ x2=15
x1=9 Æ x2=0
· Se coge un punto cualquiera, por ejemplo X1=X2=0, el punto (0,0), y vemos:
5·0 + 3·0 <= 45
6 - Metodo del Simplex
5·0 + 3·0 >= 45 NO CIERTO
· La región factible será el triángulo formado por los puntos A, B y C, con los bordes
incluidos.
Función objetivo 40 x1+36x2
40x1+36x2 = cte
Por ejemplo Z=0
40x1+36x2=0
10/9
es la ecuación de una recta
x1= 0 Æ x2= 0
x1=1 Æ x2= -40/36 = -
7 - Metodo del Simplex
Z=36
40 x1+36 x2=36
Z= -36
40 x1+36 x2=-36
x1= 0 Æ x2= 1
x2= 0 Æ x1= 36/40 = 9/10
x1= 0 Æ x2= -1
x2= 0 Æ x1= -36/40 = -9/10
8 - Metodo del Simplex
Resumiendo:
Con los tres valores de la cte, Z:
- Constante positiva Æ la recta se mueve a la derecha
- Constante negativa Æ la recta se mueve a la izquierda
· Hemos de probar en qué parte esta ecuación nos da el valor óptimo. Como
estamos minimizando, queremos que nos dé el menor valor posible. Gráficamente
esto supone bajar la recta lo más posible en la región factible:
9 - Metodo del Simplex
A = (x1, x2) = (8, 5/3) minimiza Z ⇒ es la solución óptima y Z=380 es el
valor óptimo para el problema.
Este es un ejemplo de solución óptima única.
10 - Metodo del Simplex
Otro ejemplo:
Max Z = x2
Sujeto a
2x1 - x2= -2
x1 + 2x2= 8
2x1 - x2 ≥ -2
x1 + 2x2 ≤ 8
x1, x2 ≥ 0
x1= 0 Æ x2= 2
x2= 0 Æ x1= -1
x1= 0 Æ x2= 4
x2= 0 Æ x1= 8
Max Z = x2
11 - Metodo del Simplex
Max Z = 3x1 + 2x2
12 - Metodo del Simplex
13 - Metodo del Simplex
Soluciones óptimas múltiples o alternativas
Max
Sujeto a
Z = x1+ 2x2
x1+ 2x2 ≤ 10
x1 + x2 ≥ 1
x2 ≤ 4
x1, x2 ≥ 0
14 - Metodo del Simplex
Todos los puntos de la línea BC son soluciones óptimas.
15 - Metodo del Simplex
Solución no acotada
En una situación real no existe. Ej: construcción pisos
Max
Z = x1 + 2x2
Sujeto a
x 1 + x2 ≥ 1
x2 ≤ 4
x1, x2 ≥0
16 - Metodo del Simplex
17 - Metodo del Simplex
ZOPT
Æ+∞
No existe óptimo finito. El p.p.l. se dice que tiene solución no acotada. En
este caso porque queremos Max Z, si fuese Min Z la solución sería el
punto A
18 - Metodo del Simplex
Problema no factible
Min
Sujeto a
Z = x1 + x 2
x 1 + x2 ≤ 1
4x1 + 2x2 ≥ 6
x1, x2 ≥ 0
x1 + x2 = 1 pasa por los puntos (0,1) y (1,0)
4x1 + 2x2 = 6 pasa por los puntos (0,3) y (1.5,0)
No hay intersección entre los dos planos Æ no hay ninguna solución que
cumpla las restricciones.
R=Ø
19 - Metodo del Simplex
En 3 variables:
20 - Metodo del Simplex
21 - Metodo del Simplex
22 - Metodo del Simplex
23 - Metodo del Simplex
Forma estándar de un PPL con m restricciones y n
variables
Maximizar
(minimizar)
Z = c1x1 + c2x2 + ... + cnxn
a11x1 + a12x2 + ... + a1nxn = b1
a21x1 +a22 x2 + ... + a2nxn = b2
...
am1x1 + am2x2 + ... + amnxn = bm
siendo b1, b2,…, bm ≥ 0
En notación matricial:
Maximizar
(minimizar)
Z = cX
AX = b
X≥0
(b ≥ 0)
siendo:
A=
(m x n)
X=
(n x 1)
x1
x2
...
xn
a11
a21
...
am1
a12
a22
...
am2
...
...
...
...
a1n
a2n
...
amn
b=
(m x 1)
b1
b2
...
bm
c = (c1, c2, ..., cn)
(1 x n)
(Un vector X ≥ 0 ⇔ xi ≥ 0 ∀i = 1, ..., n)
A ≡ matriz de coeficientes
X ≡ vector solución, de actividades o decisiones
b ≡ vector de restricciones, recursos o constantes de la derecha
c ≡ vector de costes o beneficios o coeficientes de la función del objetivo
24 - Metodo del Simplex
Z = cX
AX = b
X≥0
Ejemplo:
(que incumple la forma estándar)
Max Z = 2x1 + 3x2 – 4x3
Sujeto a
-3x1 + x2 - x3 ≥ 5 c
- x1 + x2 + x3 ≤ 10 d
3x1 + x2 - 2x3 = -7 e
x1≥0, x2≤0, x3 cq signo
1º)
modificamos las variables, trabajamos con yi :
y1 = x1 ≥ 0
y2 = -x2 ≥ 0
x3 = y3 - y4 con y3, y4 ≥ 0
2º)
e
3x1 + x2 - 2x3 = -7 ⇒ -3x1 - x2 + 2x3 = 7
-3y1 + y2 + 2y3 –2y4 = 7
c
-3x1 + x2 - x3 ≥ 5 ⇒
-3y1 - y2 - y3 + y4 – y5 = 5, y5≥ 0
d
- x1 + x2 + x3 ≤ 10 ⇒
-y1 - y2 + y3 - y4 + y6 = 10,
y5, y6 se llaman variables de holgura.
3º)
Max Z = 2y1 – 3y2 – 4y3 + 4y4
-3y1 - y2 - y3 + y4 – y5 = 5
-y1 - y2 + y3 - y4 + y6 = 10
-3y1 + y2 + 2y3 – 2y4 = 7
yi ≥ 0 ∀i= 1, ..., 6
25 - Metodo del Simplex
y6 ≥ 0
Sistemas de ecuaciones lineales
Ejemplo:
(a)
(b)
–2x1 + x2 - x3 + x4 – x5 = -2
x1 + 2x2 + 3x3 - x4 + 2x5 = 4
Más incógnitas que ecuaciones ⇒ ∞ soluciones
A ≡ matriz m x n
m > n ⇒ no hay solución
n > m ⇒ hay ∞ soluciones
n = m ⇒ hay una solución
La colección de todas las posibles soluciones de un conjunto de ecuaciones
lineales se denomina conjunto solución.
Dos sistemas de ecuaciones se dicen equivalentes si ambos tienen el
mismo conjunto solución.
(a) ’ (-1)
2x1 - x2 + x3 - x4 + x5 = 2
(b) = x1 + 2x2 + 3x3 - x4 + 2x5 = 4
Sistema equivalente al anterior
(a) ’½
x1 - ½ x2 + ½ x3 - ½ x4 + ½ x5 = 1
(b) – (a)
5/2 x2 + 5/2 x3 – ½ x4 + 3/2 x5 = 3
Sistema equivalente al anterior
x1 - ½ x2 + ½ x3 - ½ x4 + ½ x5 = 1
(b) ’ 2/5
x2 + x3 - 1/5 x4 + 3/5 x5 = 6/5
Sistema equivalente al anterior
(a) + ½ (b)
x1 + x3 - 6/10 x4 + 6/10 x5 = 16/10
x2 + x3 - 1/5 x4 + 3/5 x5 = 6/5
Sistema equivalente al anterior
Ahora eligiendo x3 = x4 = x5 = 0 queda:
x1 = 16/10
x2 = 6/5
que es solución de todos los sistemas equivalentes que hemos estado
construyendo. Es una de las infinitas soluciones.
26 - Metodo del Simplex
27 - Metodo del Simplex
Definiciones
Un sistema de ecuaciones se dice canónico si en cada ecuación aparece
una variable básica, que es aquella que posee en dicha ecuación coeficiente 1 y
en las otras ecuaciones coeficiente 0.
Las variables que no cumplan esto se llaman variables no básicas.
x1
x2
+ 2x3
+ 3x3
-5 x3 + x4
+ 3x5 – 7x6 = 5
+ 2x5 + 1/3 x6 = 4
+ 3 x5 - 20/12 x6 =100/31
x1, x2, x4 variables básicas
x1 variable básica respecto a la 1ª ecuación
x2 variable básica respecto a la 2ª ecuación
x4 variable básica respecto a la 3ª ecuación
x3, x5, x6 variables no básicas
por tanto es un sistema de ecuaciones canónico.
Un pivotaje es una sucesión de operaciones elementales que reduce un
sistema de ecuaciones dado a uno equivalente canónico.
Solución básica es la solución que se obtiene de un sistema canónico
eligiendo para las variables no básicas el valor cero, y resolviéndolo para las
básicas.
(ejemplo anterior)
x3 = x5 = x6 = 0
x1 = 5, x2 = 4, x4 = 100/31
Si los valores de las variables básicas son no negativos, se llama solución
factible básica. (s.f.b)
Si el sistema es:
a11x1 + a12x2 + ... + a1nxn = b1
a21x1 + a22x2 + ... + a2nxn = b2
...
...
am1x1 + am2x2 + ... + amnxn = bm
n>m
n
nº de sol básicas posibles
≤
Nº combinatorio, aunque sea muy grande
siempre es finito
m
A partir de este sistema, mediante el pivotaje obtenemos un sistema canónico,
por tanto una variable básica en cada ecuación. Cada vértice de la figura es una
solución factible básica.
28 - Metodo del Simplex
Tema 2. El método del Simplex.
George B. Dantzig (1947).
Esquema básico de funcionamiento del método del Simplex.
El método del simplex es un procedimiento iterativo para resolver
problemas de programación lineal (p.p.l.) expresados en forma estándar:
Z = cx
Ax = b (b≥0)
x≥0
El método requiere que las ecuaciones de las restricciones conformen un
sistema canónico con una solución factible básica fácil de obtener.
PASOS GENERALES:
1. Empezar con una solución factible básica (s.f.b.) inicial obtenida del
sistema de ecuaciones expresado en forma canónica.
2. Mejorar dicha solución si ello es posible.
3. Repetir hasta encontrar la mejor solución factible básica (solución
óptima).
Ejemplo:
Max
Z = 5x1 + 2x2 + 3x3 - x4 + x5
=8
Sujeto a
x1 + 2x2 + 2x3 + x4
+ x5 = 7
3x1 + 4x2 + x3
xi ≥ 0 ∀i = 1, ..., 5
está en forma estándar → todas las variables son ≥ 0
todas las restricciones son igualdades ( = )
las constantes de la derecha son ≥ 0
x4 variable básica de la primera ecuación
x5 variable básica de la segunda ecuación
Solución básica inicial:
x4 = 8 ≥ 0
x1 = x2 = x3 = 0 ⇒
solución factible básica
x5 = 7 ≥ 0
Tenemos
29 - Metodo del Simplex
Z = 5•0+2•0+3•0-1•8+1•7 = -1
Ahora hay que examinar si esta solución es óptima. Si lo es, hemos
acabado. En caso de que no lo sea, se va a calcular una s.f.b. adyacente (difiere
de la anterior en una variable básica).
Var Básica Æ Var NO Bás
Var NO Bás Æ Var Básica
(>0) Æ (=0)
(=0) Æ (>0)
x1 + 2x2 + 2x3 + x4
=8
3x1 + 4x2 + x3
+ x5 = 7
s.f.b. actual x1 = x2 = x3 = 0
x4 = 4, x5 = 7
variables no básicas
variables básicas
Vamos a aumentar x1 manteniendo x2 = x3 = 0
x4
=8⇒
x4 = 8 – x1 (*)
x1+
+ x5 = 7 ⇒
x5 = 7 – 3 x1 (**)
3x1
⇒
x4 = 7, x5 = 4
Si x1=1
Z = 5•1+2•0+3•0-1•7+1•4 = 2 No es sol. óptima, hay que calcular una
adyacente
Así pues el beneficio relativo de x1,
∆x1=1 Æ ∆Z = 2 – (-1) = 3
El beneficio relativo de una variable no básica es el cambio que se
produce en la función del objetivo por unidad aumentada en dicha variable
no básica.
(*) x4 = 8 – x1 ⇒
(**) x5 = 7 – 3 x1 ⇒
x4 < 0 si x1 > 8
x5 < 0 si x1 > 7/3
x1> 8 y x1 >7/3 son los valores que limitan el crecimiento de x1
Entonces no podrá se mayor del mínimo: máximo valor posible para x1 =
mín{8, 7/3 }.
x1 = 7/3 ⇒ x5 = 0
x4 = 17/3
Sol. Fact. Básica adyacente de la
anterior
x2 = x3 = 0
y
Z = 6 el valor de la función objetivo aumenta en 7 unidades
Si
30 - Metodo del Simplex
Ahora, de nuevo hay que comprobar si esta s.f.b. es óptima. Si no,
hay que mejorarla.
RESUMEN
(problema de maximización)
1. Empezar con una solución factible básica inicial obtenida a partir del
sistema de restricciones en forma canónica.
2. Comprobar si la solución factible básica es óptima. Para ello calcular
los beneficios relativos de las variables no básicas (éstos representan
el cambio neto en el valor de la función del objetivo por unidad
aumentada en dicha variable).
Si estos beneficios relativos (de todas las variables no básicas) son ≤
0, la solución actual es óptima. En otro caso, seguir (hasta que se
cumpla lo anterior).
3. Seleccionar una variable no básica como nueva variable básica en la
solución. La regla general será seleccionar la variable no básica con
el mayor beneficio relativo.
4. Determinar la variable básica que sustituya a la no básica. Esto se
hace mediante la regla de la mínima proporción:
Examinamos las restricciones. Para aquellas en las que la
variable no básica tiene coeficiente positivo, el límite que puede
alcanzar dicha variable viene dado por el cociente entre la constante
de la derecha de dicha restricción y ese coeficiente positivo.
5. Resolver el nuevo sistema y volver al paso 2.
Si por el contrario el problema es de minimización, cambiarían el paso 2 y
el 3:
2. Si todos los beneficios relativos son ≥ 0, la solución actual es óptima.
3. ...seleccionar la variable no básica con el menor ...
31 - Metodo del Simplex
El método del Simplex por tablas.
Max
Sujeto a
Z = 5x1 + 2x2 + 3x3 - x4 + x5
=8
x1 + 2x2 + 2x3 + x4
+ x5 = 7
3x1 + 4x2 + x3
xi≥0 ∀i = 1, ..., 5
CB
Cj
Base
5
x1
2
x2
3
x3
-1
x4
1
x5
b ( ctes )
-1
1
x4
x5
1
3
2
4
2
1
1
0
0
1
8
7
De la tabla se obtiene:
variables básicas = ctes,
x4 = 8
x5 = 7
x1 = x2 = x3 = 0
_
8
Z = CB•b = (-1, 1) • 7
el resto (no básicas) = 0.
= -8+7 = -1
Para ver si la s.f.b. es óptima, necesitamos los beneficios relativos de las
variables no básicas.
c j = c j − cB Pj
Columna de
xj
siendo CB el vector de variables básicas, (-1,1), y cj los coeficientes de la función
del objetivo
Solución óptima si
c j ≤ 0 ∀j
(Regla de parada)
32 - Metodo del Simplex
_
1
C1 = 5 – (-1,1) 3 = 5 – (-1+3) = 3
_
2
C2 = 2 – (-1,1) 4 = 2 – (-2+4) = 0
beneficio relativo
_
2
C3 = 3 – (-1,1) 1 = 3 – (-2+1) = 4 (si x3 crece una unidad, Z crece 4)
_
_
C4 = C5 = 0
(siempre son 0, no hace falta calcularlo)
Tabla 1
CB
-1
1
Cj
Base
x4
x5
cj
5
x1
1
3
3
2
x2
2
4
0
3
x3
2
1
4
-1
x4
1
0
0
1
x5
0
1
0
b
8
7
Z = -1
_
Cj ≥ 0 ⇒ la s.f.b actual no es óptima
Hay que calcular una s.f.b adyacente:
• Una v. no básica entra en la base
• Una v. básica sale de la base
_
Criterio de entrada: max {Cj > 0 } → max{3,4}= 4 ⇒ entra x3 (en la base)
Criterio de salida: mínima proporción
Min {8/2, 7/1} = 8/2
⇒ sale x4
y el 2 es el pivote
Tabla 2.
CB
3
1
Cj
Base
x3
x5
5
x1
½
5/2
2
x2
1
3
3
x3
1
0
-1
x4
½
-½
1
x5
0
1
b
4
3
cj
1
-4
0
-2
0
Z = 15
• Fila del privote → se divide por el pivote
• Cualquier otra fila = fila anterior – (elemento de la columna del pivote) x
(nueva fila pivote)
D(3,4,1,0,1,7) – (1)(½,1,1,½,0,4) = (3,4,1,0,1,7)-( ½,1,1,½,0,4) = (5/2,3,0,½,1,3)
33 - Metodo del Simplex
D(3,0,4,0,0) – (4)(½,1,1,½,0) = (3,0,4,0,0) - (2,4,4,2,0) = (1,-4,0,-2,0)
_
4
DZ = CB•b = (3,1) 3 = 12+3 = 15
Regla del cuadrado:
b•c
a' = a −
pivote
Nueva
a•
•c
b•
•pivote
solución que se obtiene de la tabla:
x5 = 3
x1= x2 = x4 =0
x3 = 4
⎛ 4⎞
Z = cB • b = (3,1)⎜⎜ ⎟⎟ = 12 + 3 = 15
⎝ 3⎠
_
Como c1 > 0 la tabla 2 no es óptima.
Criterio de entrada: max{c j > 0} ⇒ entra x1
Criterio de salida min {4/(½), 3/(5/2)} = min {8, 6/5} = 6/5 ⇒ sale x5 y pivote
5/2
Tabla 3.
CB
3
5
Cj
Base
x3
x1
_
Cj
5
x1
0
1
2
x2
2/5
6/5
3
x3
1
0
-1
x4
3/5
-1/5
1
x5
-1/5
2/5
b
17/5
6/5
0
-26/5
0
-9/5
-2/5
Z = 81/5
Todos los c j son ≤ 0 ⇒ ésta es la solución óptima
x1 = 6/5
x2 = 0
x3 = 17/5
Z = 81/5 es el valor óptimo del problema
x 4 = x5 = 0
Resumen (Problema de maximización).
1. Expresar el problema en forma estándar.
2. Obtener una s.f. básica inicial y construir la 1ª tabla.
3. Construir la fila de los c ( c j = c j − cB Pj )
j
34 - Metodo del Simplex
4. Si todos los
c j ≤ 0, la solución actual es óptima. En otro caso, hacer
entrar en la base la variable con mayor valor c j positivo.
5. Aplicar la regla de la mínima proporción para ver qué variable deja
6.
7.
la base.
Efectuar el pivotaje para obtener la nueva tabla y la nueva solución
factible básica.
Volver al paso 4.
Problema de minimización (ídem. Sólo cambia el punto 4)
4. Si todos los c j ≥ 0 ⇒ solución óptima. En otro caso, entra en la base
aquella variable con valor c j negativo más pequeño.
También puede tenerse en cuenta que Min Z <=> Max (-Z)
Se resuelve Max (-Z). La solución de los dos problemas será la
misma, mientras que el valor de Z óptimo cambia en el signo.
Max Z = 3x1 + 2x2
sujeto a -x1 + 2x2 ≤ 4
3x1 + 2x2 ≤14
x1 - x2
≤3
x1, x2 ≥0
pasamos a la forma estándar:
Max Z = 3x1 + 2x2
sujeto a -x1 + 2x2 + x3
=4
3x1 + 2x2
+ x4 = 14
x1 - x2
+ x5 =3
xi ≥ 0 ∀ i = 1,...,5
CB
0
0
0
Cj
Base
x3
x4
x5
_
Cj
3
x1
-1
3
1
2
x2
2
2
-1
0
x3
1
0
0
0
x4
0
1
0
0
x5
0
0
1
b
4
14
3
3
2
0
0
0
Z=0
x1 = 0, x2 = 0, x3 = 4, x4 = 14, x5 = 3
CB
0
0
3
Cj
Base
x3
x4
x1
_
Cj
vértice A
3
x1
0
0
1
2
x2
1
5
-1
0
x3
1
0
0
0
x4
0
1
0
0
x5
1
-3
1
b
7
5
3
0
5
0
0
-3
Z=9
x1 = 3, x2 = 0, x3 = 7, x4 = 5, x5 = 0
vértice B
35 - Metodo del Simplex
Cj
Base
x3
x2
x1
_
Cj
CB
0
2
3
3
x1
0
0
1
2
x2
0
1
0
0
x3
1
0
0
0
x4
- 1/5
1/5
1/5
0
x5
8/5
- 3/5
2/5
b
6
1
4
0
0
0
-1
0
Z = 14
x1 = 4, x2 = 1, x3 = 6, x4 = x5 = 0
_
Z = 14 Solución optima (todos los Cj ≤ 0)
vértice C
Equivalencias
Tabla
s.f.b.
vértice
→ Tabla siguiente
→ s.f.b adyacente
→ vértice adyacente
36 - Metodo del Simplex
37 - Metodo del Simplex
Óptimo alternativo.
En la tabla 3, x5 tiene beneficio relativo cero. Esto significa:
∆x5 = 1 ⇒ ∆Z = 0
Si hacemos entrar en la base a x5:
criterio de salida min {6/(8/5), 4/(2/5)} = 30/8 ⇒ sale x3
Tabla 4:
CB
0
2
3
Cj
Base
x5
x2
x1
3
x1
0
0
1
2
x2
0
1
0
0
x3
5/8
3/8
- 1/4
0
x4
- 1/8
1/8
1/4
0
x5
1
0
0
b
15/4
13/4
5/2
cj
0
0
0
-1
0
Z = 14
Solución óptima alternativa: x1 = 5/2,
x2 = 13/4,
x3 = x4 = 0,
x5 = 15/4
En general, una solución óptima alternativa viene indicada siempre que
exista una variable no básica cuyo beneficio relativo ( c j ) es cero en la tabla
óptima.
Si los c j de las variables no básicas son < 0 ⇒ óptimo único
(maximizando)
Id.
> 0
id.
(minimizando)
Problemas de cálculo.
Empates en la selección de variables no básicas
Si existe más de una variable con c j >0 máximo ⇒ se coge uno
cualquiera o el primero de todos (en un problema de maximización).
Si existe más de una variable con c j <0 máximo ⇒ se coge uno
cualquiera o el primero de todos (minimización).
cj . . . .
• 7 .....•5•.....•7•.....•3•.....
<0 <0 <0
Empates en el criterio de salida.
(empate en la regla de la mínima proporción)
38 - Metodo del Simplex
Ejemplo:
Max Z = 2x4 + 3/2 x6
+ x4 - x 5
=2
x1
+ 2 x4 + x6 = 4
x2
x3 + x4 + x5 + x6 = 3
xi ≥0
CB
0
0
0
CB
2
0
0
Cj
Base
x1
x2
x3
0
x1
1
0
0
0
x2
0
1
0
0
x3
0
0
1
2
x4
1
2
1
0
x5
-1
0
1
3/2
x6
0
1
1
b
2
4
3
ci
0
0
0
2
0
3/2
Z=0
Base
x4
x2
x3
x1
1
-2
-1
x2
0
1
0
x3
0
0
1
x4
1
0
0
x5
-1
2
2
x6
0
1
1
b
2
0
1
ci
-2
0
0
0
2
3/2
Z=4
Solución factible básica DEGENERADA
CB
2
0
0
Base
x4
x5
x3
ci
x1
0
-1
1
x2
1/2
1/2
-1
x3
0
0
1
x4
1
0
0
x5
0
1
0
x6
1/2
1/2
0
b
2
0
1
0
-1
0
0
0
1/2
Z=4
Solución factible básica DEGENERADA
¿Debemos parar o seguir?
¿es posible?
Tabla n1
•
•
•
•
Tabla n2
= n1
Esto último se llama ciclaje.
A día de hoy, sólo se conocen “dos” ejemplos de problemas que ciclen.
(Descontando los que aparecen en los exámenes)
39 - Metodo del Simplex
Resumen.
Empate en el criterio de salida ⇒ s.f.b. degenerada ⇒ + iteraciones ⇒ +
trabajo ¿⇒? ciclaje (en la vida real continuar hasta llegar a la solución óptima).
Técnicas que evitan ciclaje ⇒ las hay, pero no “suelen” utilizarse.
Probabilidad de encontrarse con un problema que cicle en la vida real =
Probabilidad de encontrarse con un político honrado = Probabilidad de que los
extraterrestres te lleven en su platillo = Probabilidad de que el mundo termine
hoy a las 23h41minutos….
Soluciones no acotadas.
Max Z = 2x1 + 3x2
Sujeto a:
x1 - x2 ≤ 2
-3x1 + x2 ≤ 4
x1, x2 ≥ 0
CB
0
0
Cj
Base
x3
x4
2
x1
1
-3
3
x2
-1
1
0
x3
1
0
0
x4
0
1
b
2
4
ci
2
3
0
0
Z=0
x1 = 0, x2 = 0 (vértice A)
CB
0
0
Base
x3
x2
x1
-2
-3
x2
0
1
x3
1
0
x4
1
1
b
6
4
ci
11
0
0
-3
Z = 12
x1 = 0, x4 = 4 (vértice B)
Entra x1, y ¿cuál sale?
Habría que calcular la regla de la mínima proporción, pero en x1 son todos
menores de cero, por tanto solución no acotada.
40 - Metodo del Simplex
En forma de ecuaciones:
-2x1 + x3 + x4 = 6
-3x1 + x2 + x4 = 4
x4 = 0
x3 = 6 + 2x1
x2 = 4 + 3x1
Si x1 crece, x3 y x2 nunca se hacen cero
Fallo en el criterio de salida ⇒ solución no acotada.
41 - Metodo del Simplex
Obtención de una solución factible básica inicial: Método de las Dos
Fases y Método de las Penalizaciones.
1.
Método de ensayo y error
2.
Uso de variables artificiales.
Ejemplo:
Min Z = -3x1 + x2 + x3
x1 - 2x2 + x3 ≤ 11
-4x1 + x2 + 2x3 ≥ 3
2x1 - x3 = -1
xi ≥ 0
Pasamos a la forma estándar:
Min Z = -3x1 + x2 + x3
x1 - 2x2 + x3 + x4
= 11
-4x1 + x2 + 2x3 –x5 = 3
-2x1
+ x3
=1
xi≥ 0
No tenemos una variable básica por ecuación, por lo tanto no podemos empezar a usar el
simples. x4 es variable básica, pero x5 no es variable básica porque tiene coeficiente negativo.
Introducimos variables artificiales:
x1 - 2x2 + x3 + x4
= 11
-4x1 + x2 + 2x3 –x5 + x6 = 3
Sistema artificial
-2x1 + x3
+ x7= 1
xi≥ 0
El sistema artificial tiene una solución factible básica inicial
x1 = x2 = x3 = 0 x4 = 11
x5 = 0
x6 = 3
x7= 1
pero no es solución factible básica del problema de partida.
Ahora bien,
cualquier solución factible básica del sistema artificial con las variables artificiales iguales a cero es
solución factible básica del sistema de partida.
Por tanto, hay que reducir las variables artificiales para que se hagan cero.
1. MÉTODO DE LAS PENALIZACIONES O DE LA M (PENALTY METHOD, BIG M).
Se le asigna a las variables artificiales un coste (penalización) muy alto en la función objetivo.
En nuestro ejemplo:
Min Z = -3x1 + x2 + x3 + M ·(Σ variables artificiales) ( x6 y x7 en este ejemplo)
Siendo M un coste muy grande, M>0, M→ ∞
Min Z = -3x1 + x2 + x3 + M x6 +M x7
(Nota) Max Z = -3x1 + x2 + x3+ (- M) · (Σ variables artificiales)
Siendo (-M) un beneficio muy pequeño, M>0, M→ ∞
42 - Metodo del Simplex
CB
0
M
M
CB
0
M
1
CB
0
1
1
CB
-3
1
1
Cj
Base
x4
x6
x7
-3
x1
1
-4
-2
1
x2
-2
1
0
1
x3
1
2
1
0
x4
1
0
0
0
x5
0
-1
0
M
x6
0
1
0
M
x7
0
0
1
b
11
3
1
ci
-3+6M
1-M
1-3M
0
M
0
0
Z = 4M
Base
x4
x6
x3
x1
3
0
-2
x2
-2
1
0
x3
0
0
1
x4
1
0
0
x5
0
-1
0
x6
0
1
0
x7
-1
-2
1
b
10
1
1
ci
-1
1-M
0
0
M
0
3M-1
Z = M+1
Base
x4
x2
x3
x1
3
0
-2
x2
0
1
0
x3
0
0
1
x4
1
0
0
x5
-2
-1
0
x6
2
1
0
x7
-5
-2
1
b
12
1
1
ci
-1
0
0
0
1
M-1
M+1
Z=2
Base
x1
x2
x3
x1
1
0
0
x2
0
1
0
x3
0
0
1
x4
1/3
0
2/3
x5
-2/3
-1
-4/3
x6
2/3
1
4/3
x7
-5/3
-2
-7/3
b
4
1
9
ci
0
0
0
1/3
1/3
M - 1/3
M - 2/3
Z = -2
Zopt = -2
43 - Metodo del Simplex
Notas:
1) Una vez que una variable artificial es reemplazada por una variable real, no es necesario
mantenerla en las tablas
2) Cuando el método termina con una solución óptima en la que hay una o más variables artificiales
en la base mayores que cero ⇒ el problema original no tiene ninguna solución factible, porque
no podemos encontrar ninguna solución con las variables del problema de partida
3) En el ordenador M = ? Si el método está programado en ordenador no se trabaja con la letra M.
Hay que asignar un valor a la constante M.
2. MÉTODO DE LAS 2 FASES (TWO PHASES).
Se resuelve en dos fases:
Fase 1: Se resuelve el problema
Min W = ∑v.artificiales
Sujeto a sistema artificial
Si llegamos a que el valor mínimo es cero ⇒ W =
∑v.artificiales(≥0) = 0 ⇒ Todas son cero y tenemos una solución factible
básica del sistema original.
En caso de que el valor mínimo sea positivo, W > 0 ⇒ alguna v.artificial es >0 ⇒ el problema
original no tiene ninguna solución factible.
Fase 2: La tabla final de la fase 1 pasa a ser la inicial de la fase 2 cambiando la función del objetivo por la
original. Se aplica el simplex.
Nota.
cero).
La fase 1 puede terminar con Wopt=0 y alguna variable artificial en la base (que tendrá valor
En este caso, se pasa a la fase 2 (escribiendo su Cj=0) y se procede a echarla de la base aunque
para ello se viole el criterio de salida.
En el momento en que haya salido de la base eliminamos su columna.
44 - Metodo del Simplex
Fase 1. (Min W = x6 + x7, sujeto a sistema artificial)
CB
0
1
1
CB
0
1
0
CB
0
0
0
Cj
Base
x4
x6
x7
0
x1
1
-4
-2
0
x2
-2
1
0
0
x3
1
2
1
0
x4
1
0
0
0
x5
0
-1
0
1
x6
0
1
0
1
x7
0
0
1
b
11
3
1
ci
6
-1
-3
0
1
0
0
W=4
Base
x4
x6
x3
x1
3
0
-2
x2
-2
1
0
x3
0
0
1
x4
1
0
0
x5
0
-1
0
x6
0
1
0
x7
-1
-2
1
b
10
1
1
ci
0
-1
0
0
1
0
3
W=1
Base
x4
x2
x3
x1
3
0
-2
x2
0
1
0
x3
0
0
1
x4
1
0
0
x5
-2
-1
0
x6
2
1
0
x7
-5
-2
1
b
12
1
1
ci
0
0
0
0
0
1
1
W=0
x1 = 0, x2 = 1, x3 = 1, x4 =12,
x5 = x6 = x7 = 0
45 - Metodo del Simplex
Fase 2. (y volvemos a la función objetivo inicial, es decir, valores iniciales de Cj)
CB
0
1
1
CB
-3
1
1
Cj
Base
x4
x2
x3
-3
x1
3
0
-2
1
x2
0
1
0
1
x3
0
0
1
0
x4
1
0
0
0
x5
-2
-1
0
b
12
1
1
ci
-1
0
0
0
1
Z=2
Base
x1
x2
x3
x1
1
0
0
x2
0
1
0
x3
0
0
1
x4
1/3
0
2/3
x5
-2/3
-1
-4/3
b
4
1
9
0
0
0
1/3
1/3
Z = -2
ci
x1 = 4, x2 = 1, x3 = 9, x4 = x5 = 0
Ejemplo relativo a la nota anterior:
Max Z = 2x1 + x2 + x3
4x1 + 6x2 + 3x3 ≤ 8
3x1 - 6x2 - 4x3 - x4 ≤ 1
2x1 + 3x2 - 5x3 - x4 = 4
Zopt= -2
4x1 + 6x2 + 3x3 + x5
=8
3x1 - 6x2 - 4x3 - x4 + x6 = 1
2x1 + 3x2 - 5x3 - x4 + x7 = 4
(x5 v.holgura)
(x6 v.holgura)
(x7 v.artificial)
Fase 1: Min W = x7
CB
0
0
1
Cj
Base
x5
x6
x7
ci
CB
0
0
1
Base
x2
x6
x7
ci
0
x1
4
3
2
0
x2
6
-6
3
0
x3
3
-4
-5
0
x4
0
-1
-1
0
x5
1
0
0
0
x6
0
1
0
1
x7
0
0
1
b
8
1
4
-2
-3
5
1
0
0
0
W=4
x1
2/3
7
0
x2
1
0
0
x3
1/2
-1
-13/2
x4
0
-1
-1
x5
1/6
1
-1/2
x6
0
1
0
x7
0
0
1
b
4/3
9
0
0
0
13/2
1
1/2
0
0
W=0
Final fase 1.
46 - Metodo del Simplex
Fase 2
se mantiene
CB
1
0
0
Cj
Base
x2
x6
x7
ci
CB
1
2
0
Base
x2
x1
x7
ci
CB
1
2
1
Base
x2
x1
x3
ci
2
x1
2/3
7
0
1
x2
1
0
0
1
x3
1/2
-1
-13/2
0
x4
0
-1
-1
0
x5
1/6
1
-1/2
0
x6
0
1
0
0
x7
0
0
1
b
4/3
9
0
4/3
0
1/2
0
-1/6
0
0
Z = 4/3
x1
0
1
0
x2
1
0
0
x3
25/42
-1/7
-13/2
x4
2/21
-1/7
-1
x5
9/126
1/7
-1/2
x6
-2/21
1/7
0
x7
0
0
1
b
10/21
9/7
0
0
0
29/42
4/21
-5/14
-4/21
0
Z = 64/21
x1
0
1
0
x2
1
0
0
x3
0
0
1
x4
1/273
-11/91
2/13
x5
1/39
2/13
1/13
x6
-2/21
1/7
0
x7
25/273
-2/91
-2/13
b
10/21
9/7
0
0
0
0
23/273
-16/39
-4/21
29/273
Z = 64/21
No prestamos atención
a esta columna
CB
1
2
0
Base
x2
x1
x4
ci
x1
0
1
0
x2
1
0
0
x3
-1/42
11/14
13/2
x4
0
0
1
x5
1/42
3/14
1/2
x6
-2/21
1/7
0
0
0
-23/42
0
-19/42
-4/21
x7
b
10/21
9/7
0
Z = 64/21
óptima
Comparación entre el Método Big M y el Método de las 2 fases.
9
9
9
9
Igual número de tablas en general.
⇓
Igual número de cálculos en general.
M ≡ “problemas” en el ordenador
2 fases ≡ “problemas” si hay una o más variables artificiales = 0 en la base en la última tabla de
la 1ª fase.
47 - Metodo del Simplex
Eficiencia computacional del Método del Simplex.
9
El número de tablas es sensible al número de restricciones (Simplex revisado). La rapidez del
simplex depende más del número de restricciones que del número de variables.
9
Problema de minimizar con muchas variables:
ci
>0
>0
>0
...
<0
la primera variable con ci <0 entra la base
9 Otros métodos:
¾ Elipsoides (KHACHIAN).
¾ Punto interior (Karmarkar).
48 - Metodo del Simplex
49 - Metodo del Simplex
x2 = 6/5
que es solución de todos los sistemas equivalentes que hemos estado
construyendo. Es una de las infinitas soluciones.
50 - Metodo del Simplex
Definiciones
Un sistema de ecuaciones se dice canónico si en cada ecuación aparece
una variable básica, que es aquella que posee en dicha ecuación coeficiente 1 y
en las otras ecuaciones coeficiente 0.
Las variables que no cumplan esto se llaman variables no básicas.
x1
x2
+ 2x3
+ 3x3
-5 x3 + x4
+ 3x5 – 7x6 = 5
+ 2x5 + 1/3 x6 = 4
+ 3 x5 - 20/12 x6 =100/31
x1, x2, x4 variables básicas
x1 variable básica respecto a la 1ª ecuación
x2 variable básica respecto a la 2ª ecuación
x4 variable básica respecto a la 3ª ecuación
x3, x5, x6 variables no básicas
por tanto es un sistema de ecuaciones canónico.
Un pivotaje es una sucesión de operaciones elementales que reduce un
sistema de ecuaciones dado a uno equivalente canónico.
Solución básica es la solución que se obtiene de un sistema canónico
eligiendo para las variables no básicas el valor cero, y resolviéndolo para las
básicas.
(ejemplo anterior)
x3 = x5 = x6 = 0
x1 = 5, x2 = 4, x4 = 100/31
Si los valores de las variables básicas son no negativos, se llama solución
factible básica. (s.f.b)
Si el sistema es:
a11x1 + a12x2 + ... + a1nxn = b1
a21x1 + a22x2 + ... + a2nxn = b2
...
...
am1x1 + am2x2 + ... + amnxn = bm
n>m
n
nº de sol básicas posibles
≤
Nº combinatorio, aunque sea muy grande
siempre es finito
m
A partir de este sistema, mediante el pivotaje obtenemos un sistema canónico,
por tanto una variable básica en cada ecuación. Cada vértice de la figura es una
solución factible básica.
51 - Metodo del Simplex
Tema 2. El método del Simplex.
George B. Dantzig (1947).
http://www2.informs.org/History/dantzig/photo.htm
Esquema básico de funcionamiento del método del Simplex.
El método del simplex es un procedimiento iterativo para resolver
problemas de programación lineal (p.p.l.) expresados en forma estándar:
Z = cx
Ax = b (b≥0)
x≥0
El método requiere que las ecuaciones de las restricciones conformen un
sistema canónico con una solución factible básica fácil de obtener.
PASOS GENERALES:
5. Empezar con una solución factible básica (s.f.b.) inicial obtenida del
sistema de ecuaciones expresado en forma canónica.
6. Mejorar dicha solución si ello es posible.
7. Repetir hasta encontrar la mejor solución factible básica (solución
óptima).
Ejemplo:
Max
Z = 5x1 + 2x2 + 3x3 - x4 + x5
=8
Sujeto a
x1 + 2x2 + 2x3 + x4
+ x5 = 7
3x1 + 4x2 + x3
xi ≥ 0 ∀i = 1, ..., 5
está en forma estándar → todas las variables son ≥ 0
todas las restricciones son igualdades ( = )
las constantes de la derecha son ≥ 0
x4 variable básica de la primera ecuación
x5 variable básica de la segunda ecuación
Solución básica inicial:
x4 = 8 ≥ 0
solución factible básica
x1 = x2 = x3 = 0 ⇒
x5 = 7 ≥ 0
Tenemos
52 - Metodo del Simplex
Z = 5•0+2•0+3•0-1•8+1•7 = -1
Ahora hay que examinar si esta solución es óptima. Si lo es, hemos
acabado. En caso de que no lo sea, se va a calcular una s.f.b. adyacente (difiere
de la anterior en una variable básica).
Var Básica Æ Var NO Bás
Var NO Bás Æ Var Básica
(>0) Æ (=0)
(=0) Æ (>0)
x1 + 2x2 + 2x3 + x4
=8
3x1 + 4x2 + x3
+ x5 = 7
s.f.b. actual x1 = x2 = x3 = 0
x4 = 4, x5 = 7
variables no básicas
variables básicas
Vamos a aumentar x1 manteniendo x2 = x3 = 0
x4
=8⇒
x4 = 8 – x1 (*)
x1+
+ x5 = 7 ⇒
x5 = 7 – 3 x1 (**)
3x1
⇒
x4 = 7, x5 = 4
Si x1=1
Z = 5•1+2•0+3•0-1•7+1•4 = 2 No es sol. óptima, hay que calcular una
adyacente
Así pues el beneficio relativo de x1,
∆x1=1 Æ ∆Z = 2 – (-1) = 3
El beneficio relativo de una variable no básica es el cambio que se
produce en la función del objetivo por unidad aumentada en dicha variable
no básica.
(*) x4 = 8 – x1 ⇒
(**) x5 = 7 – 3 x1 ⇒
x4 < 0 si x1 > 8
x5 < 0 si x1 > 7/3
x1> 8 y x1 >7/3 son las ecuaciones que limitan el crecimiento de x1
Entonces no podrá se mayor del mínimo: máximo valor posible para x1 =
mín{8, 7/3 }.
x1 = 7/3 ⇒ x5 = 0
x4 = 17/3
Sol. Fact. Básica adyacente de la
anterior
x2 = x3 = 0
y
Z = 6 el valor de la función objetivo aumenta en 7 unidades
Si
53 - Metodo del Simplex
Ahora, de nuevo hay que comprobar si esta s.f.b. es óptima. Si no,
hay que mejorarla.
RESUMEN
(problema de maximización)
6. Empezar con una solución factible básica inicial obtenida a partir del
sistema de restricciones en forma canónica.
7. Comprobar si la solución factible básica es óptima. Para ello calcular
los beneficios relativos de las variables no básicas (éstos representan
el cambio neto en el valor de la función del objetivo por unidad
aumentada en dicha variable).
Si estos beneficios relativos (de todas las variables no básicas) son ≤
0, la solución actual es óptima. En otro caso, seguir (hasta que se
cumpla lo anterior).
8. Seleccionar una variable no básica como nueva variable básica en la
solución. La regla general será seleccionar la variable no básica con
el mayor beneficio relativo.
9. Determinar la variable básica que sustituya a la no básica. Esto se
hace mediante la regla de la mínima proporción:
Examinamos las restricciones. Para aquellas en las que la
variable no básica tiene coeficiente positivo, el límite que puede
alcanzar dicha variable viene dado por el cociente entre la constante
de la derecha de dicha restricción y ese coeficiente positivo.
10. Resolver el nuevo sistema y volver al paso 2.
Si por el contrario el problema es de minimización, cambiarían el paso 2 y
el 3:
2. Si todos los beneficios relativos son ≥ 0, la solución actual es óptima.
3. ...seleccionar la variable no básica con el menor ...
54 - Metodo del Simplex
El método del Simplex por tablas.
Max
Sujeto a
Z = 5x1 + 2x2 + 3x3 - x4 + x5
=8
x1 + 2x2 + 2x3 + x4
+ x5 = 7
3x1 + 4x2 + x3
xi≥0 ∀i = 1, ..., 5
CB
Cj
Base
5
x1
2
x2
3
x3
-1
x4
1
x5
b ( ctes )
-1
1
x4
x5
1
3
2
4
2
1
1
0
0
1
8
7
De la tabla se obtiene:
variables básicas = ctes,
x4 = 8
x5 = 7
x1 = x2 = x3 = 0
_
8
Z = CB•b = (-1, 1) • 7
el resto (no básicas) = 0.
= -8+7 = -1
Para ver si la s.f.b. es óptima, necesitamos los beneficios relativos de las
variables no básicas.
c j = c j − cB Pj
Columna de
xj
siendo CB el vector de variables básicas, (-1,1), y cj los coeficientes de la función
del objetivo
Solución óptima si
c j ≤ 0 ∀j
(Regla de parada)
55 - Metodo del Simplex
_
1
C1 = 5 – (-1,1) 3 = 5 – (-1+3) = 3
_
2
C2 = 2 – (-1,1) 4 = 2 – (-2+4) = 0
beneficio relativo
_
2
C3 = 3 – (-1,1) 1 = 3 – (-2+1) = 4 (si x3 crece una unidad, Z crece 4)
_
_
C4 = C5 = 0
(siempre son 0, no hace falta calcularlo)
Tabla 1
CB
-1
1
Cj
Base
x4
x5
cj
5
x1
1
3
3
2
x2
2
4
0
3
x3
2
1
4
-1
x4
1
0
0
1
x5
0
1
0
b
8
7
Z = -1
_
Cj ≥ 0 ⇒ la s.f.b actual no es óptima
Hay que calcular una s.f.b adyacente:
• Una v. no básica entra en la base
• Una v. básica sale de la base
_
Criterio de entrada: max {Cj > 0 } → max{3,4}= 4 ⇒ entra x3 (en la base)
Criterio de salida: mínima proporción
Min {8/2, 7/1} = 8/2
⇒ sale x4
y el 2 es el pivote
Tabla 2.
CB
3
1
Cj
Base
x3
x5
5
x1
½
5/2
2
x2
1
3
3
x3
1
0
-1
x4
½
-½
1
x5
0
1
b
4
3
cj
1
-4
0
-2
0
Z = 15
• Fila del privote → se divide por el pivote
• Cualquier otra fila = fila anterior – (elemento de la columna del pivote) x
(nueva fila pivote)
D(3,4,1,0,1,7) – (1)(½,1,1,½,0,4) = (3,4,1,0,1,7)-( ½,1,1,½,0,4) = (5/2,3,0,½,1,3)
56 - Metodo del Simplex
D(3,0,4,0,0) – (4)(½,1,1,½,0) = (3,0,4,0,0) - (2,4,4,2,0) = (1,-4,0,-2,0)
_
4
DZ = CB•b = (3,1) 3 = 12+3 = 15
Regla del cuadrado:
b•c
a' = a −
pivote
Nueva
a•
•c
b•
•pivote
solución que se obtiene de la tabla:
x5 = 3
x1= x2 = x4 =0
x3 = 4
⎛ 4⎞
Z = cB • b = (3,1)⎜⎜ ⎟⎟ = 12 + 3 = 15
⎝ 3⎠
_
Como c1 > 0 la tabla 2 no es óptima.
Criterio de entrada: max{c j > 0} ⇒ entra x1
Criterio de salida min {4/(½), 3/(5/2)} = min {8, 6/5} = 6/5 ⇒ sale x5 y pivote
5/2
Tabla 3.
CB
3
5
Cj
Base
x3
x1
_
Cj
5
x1
0
1
2
x2
2/5
6/5
3
x3
1
0
-1
x4
3/5
-1/5
1
x5
-1/5
2/5
b
17/5
6/5
0
-26/5
0
-9/5
-2/5
Z = 81/5
Todos los c j son ≤ 0 ⇒ ésta es la solución óptima
x1 = 6/5
x2 = 0
x3 = 17/5
Z = 81/5 es el valor óptimo del problema
x 4 = x5 = 0
Resumen (Problema de maximización).
8. Expresar el problema en forma estándar.
9. Obtener una s.f. básica inicial y construir la 1ª tabla.
10.
Construir la fila de los c ( c j = c j − cB Pj )
j
57 - Metodo del Simplex
11.
Si todos los c j ≤ 0, la solución actual es óptima. En otro caso,
hacer entrar en la base la variable con mayor valor c j positivo.
12.
Aplicar la regla de la mínima proporción para ver qué variable
deja la base.
13.
Efectuar el pivotaje para obtener la nueva tabla y la nueva
solución factible básica.
14.
Volver al paso 4.
Problema de minimización (ídem. Sólo cambia el punto 4)
8. Si todos los c j ≥ 0 ⇒ solución óptima. En otro caso, entra en la base
aquella variable con valor c j negativo más pequeño.
También puede tenerse en cuenta que Min Z <=> Max (-Z)
Se resuelve Max (-Z). La solución de los dos problemas será la
misma, mientras que el valor de Z óptimo cambia en el signo.
Max Z = 3x1 + 2x2
sujeto a -x1 + 2x2 ≤ 4
3x1 + 2x2 ≤14
x1 - x2
≤3
x1, x2 ≥0
pasamos a la forma estándar:
Max Z = 3x1 + 2x2
sujeto a -x1 + 2x2 + x3
=4
3x1 + 2x2
+ x4 = 14
x1 - x2
+ x5 =3
xi ≥ 0 ∀ i = 1,...,5
CB
0
0
0
Cj
Base
x3
x4
x5
_
Cj
3
x1
-1
3
1
2
x2
2
2
-1
0
x3
1
0
0
0
x4
0
1
0
0
x5
0
0
1
b
4
14
3
3
2
0
0
0
Z=0
x1 = 0, x2 = 0, x3 = 4, x4 = 14, x5 = 3
CB
0
0
3
Cj
Base
x3
x4
x1
_
Cj
vértice A
3
x1
0
0
1
2
x2
1
5
-1
0
x3
1
0
0
0
x4
0
1
0
0
x5
1
-3
1
b
7
5
3
0
5
0
0
-3
Z=9
x1 = 3, x2 = 0, x3 = 7, x4 = 5, x5 = 0
vértice B
58 - Metodo del Simplex
Cj
Base
x3
x2
x1
_
Cj
CB
0
2
3
3
x1
0
0
1
2
x2
0
1
0
0
x3
1
0
0
0
x4
- 1/5
1/5
1/5
0
x5
8/5
- 3/5
2/5
b
6
1
4
0
0
0
-1
0
Z = 14
x1 = 4, x2 = 1, x3 = 6, x4 = x5 = 0
_
Z = 14 Solución optima (todos los Cj ≤ 0)
vértice C
Equivalencias
Tabla
s.f.b.
vértice
→ Tabla siguiente
→ s.f.b adyacente
→ vértice adyacente
59 - Metodo del Simplex
60 - Metodo del Simplex
Óptimo alternativo.
En la tabla 3, x5 tiene beneficio relativo cero. Esto significa:
∆x5 = 1 ⇒ ∆Z = 0
Si hacemos entrar en la base a x5:
criterio de salida min {6/(8/5), 4/(2/5)} = 30/8 ⇒ sale x3
Tabla 4:
CB
0
2
3
Cj
Base
x5
x2
x1
3
x1
0
0
1
2
x2
0
1
0
0
x3
5/8
3/8
- 1/4
0
x4
- 1/8
1/8
1/4
0
x5
1
0
0
b
15/4
13/4
5/2
cj
0
0
0
-1
0
Z = 14
Solución óptima alternativa: x1 = 5/2,
x2 = 13/4,
x3 = x4 = 0,
x5 = 15/4
En general, una solución óptima alternativa viene indicada siempre que
exista una variable no básica cuyo beneficio relativo ( c j ) es cero en la tabla
óptima.
Si los c j de las variables no básicas son < 0 ⇒ óptimo único
(maximizando)
Id.
> 0
id.
(minimizando)
Problemas de cálculo.
Empates en la selección de variables no básicas
Si existe más de una variable con c j >0 máximo ⇒ se coge uno
cualquiera o el primero de todos (en un problema de maximización).
Si existe más de una variable con c j <0 máximo ⇒ se coge uno
cualquiera o el primero de todos (minimización).
cj . . . .
• 7 .....•5•.....•7•.....•3•.....
<0 <0 <0
Empates en el criterio de salida.
(empate en la regla de la mínima proporción)
61 - Metodo del Simplex
Ejemplo:
Max Z = 2x4 + 3/2 x6
+ x4 - x 5
=2
x1
+ 2 x4 + x6 = 4
x2
x3 + x4 + x5 + x6 = 3
xi ≥0
CB
0
0
0
CB
2
0
0
Cj
Base
x1
x2
x3
0
x1
1
0
0
0
x2
0
1
0
0
x3
0
0
1
2
x4
1
2
1
0
x5
-1
0
1
3/2
x6
0
1
1
b
2
4
3
ci
0
0
0
2
0
3/2
Z=0
Base
x4
x2
x3
x1
1
-2
-1
x2
0
1
0
x3
0
0
1
x4
1
0
0
x5
-1
2
2
x6
0
1
1
b
2
0
1
ci
-2
0
0
0
2
3/2
Z=4
Solución factible básica DEGENERADA
CB
2
0
0
Base
x4
x5
x3
ci
x1
0
-1
1
x2
1/2
1/2
-1
x3
0
0
1
x4
1
0
0
x5
0
1
0
x6
1/2
1/2
0
b
2
0
1
0
-1
0
0
0
1/2
Z=4
Solución factible básica DEGENERADA
¿Debemos parar o seguir?
¿es posible?
Tabla n1
•
•
•
•
Tabla n2
= n1
Esto último se llama ciclaje.
A día de hoy, sólo se conocen “dos” ejemplos de problemas que ciclen.
(Descontando los que aparecen en los exámenes)
62 - Metodo del Simplex
Resumen.
Empate en el criterio de salida ⇒ s.f.b. degenerada ⇒ + iteraciones ⇒ +
trabajo ¿⇒? ciclaje (en la vida real continuar hasta llegar a la solución óptima).
Técnicas que evitan ciclaje ⇒ las hay, pero no “suelen” utilizarse.
Probabilidad de encontrarse con un problema que cicle en la vida real =
Probabilidad de encontrarse con un político honrado = Probabilidad de que los
extraterrestres te lleven en su platillo = Probabilidad de que el mundo termine
hoy a las 23h41minutos….
Soluciones no acotadas.
Max Z = 2x1 + 3x2
Sujeto a:
x1 - x2 ≤ 2
-3x1 + x2 ≤ 4
x1, x2 ≥ 0
CB
0
0
Cj
Base
x3
x4
2
x1
1
-3
3
x2
-1
1
0
x3
1
0
0
x4
0
1
b
2
4
ci
2
3
0
0
Z=0
x1 = 0, x2 = 0 (vértice A)
CB
0
0
Base
x3
x2
x1
-2
-3
x2
0
1
x3
1
0
x4
1
1
b
6
4
ci
11
0
0
-3
Z = 12
x1 = 0, x4 = 4 (vértice B)
Entra x1, y ¿cuál sale?
Habría que calcular la regla de la mínima proporción, pero en x1 son todos
menores de cero, por tanto solución no acotada.
63 - Metodo del Simplex
En forma de ecuaciones:
-2x1 + x3 + x4 = 6
-3x1 + x2 + x4 = 4
x4 = 0
x3 = 6 + 2x1
x2 = 4 + 3x1
Si x1 crece, x3 y x2 nunca se hacen cero
Fallo en el criterio de salida ⇒ solución no acotada.
64 - Metodo del Simplex
Obtención de una solución factible básica inicial: Método de las Dos
Fases y Método de las Penalizaciones.
3.
Método de ensayo y error
4.
Uso de variables artificiales.
Ejemplo:
Min Z = -3x1 + x2 + x3
x1 - 2x2 + x3 ≤ 11
-4x1 + x2 + 2x3 ≥ 3
2x1 - x3 = -1
xi ≥ 0
Pasamos a la forma estándar:
Min Z = -3x1 + x2 + x3
x1 - 2x2 + x3 + x4
= 11
-4x1 + x2 + 2x3 –x5 = 3
-2x1
+ x3
=1
xi≥ 0
No tenemos una variable básica por ecuación, por lo tanto no podemos empezar a usar el
simples. x4 es variable básica, pero x5 no es variable básica porque tiene coeficiente negativo.
Introducimos variables artificiales:
x1 - 2x2 + x3 + x4
= 11
-4x1 + x2 + 2x3 –x5 + x6 = 3
Sistema artificial
-2x1 + x3
+ x7= 1
xi≥ 0
El sistema artificial tiene una solución factible básica inicial
x1 = x2 = x3 = 0 x4 = 11
x5 = 0
x6 = 3
x7= 1
pero no es solución factible básica del problema de partida.
Ahora bien,
cualquier solución factible básica del sistema artificial con las variables artificiales iguales a cero es
solución factible básica del sistema de partida.
Por tanto, hay que reducir las variables artificiales para que se hagan cero.
1. MÉTODO DE LAS PENALIZACIONES O DE LA M (PENALTY METHOD, BIG M).
Se le asigna a las variables artificiales un coste (penalización) muy alto en la función objetivo.
En nuestro ejemplo:
Min Z = -3x1 + x2 + x3 + M ·(Σ variables artificiales) ( x6 y x7 en este ejemplo)
Siendo M un coste muy grande, M>0, M→ ∞
Min Z = -3x1 + x2 + x3 + M x6 +M x7
(Nota) Max Z = -3x1 + x2 + x3+ (- M) · (Σ variables artificiales)
Siendo (-M) un beneficio muy pequeño, M>0, M→ ∞
65 - Metodo del Simplex
CB
0
M
M
CB
0
M
1
CB
0
1
1
CB
-3
1
1
Cj
Base
x4
x6
x7
-3
x1
1
-4
-2
1
x2
-2
1
0
1
x3
1
2
1
0
x4
1
0
0
0
x5
0
-1
0
M
x6
0
1
0
M
x7
0
0
1
b
11
3
1
ci
-3+6M
1-M
1-3M
0
M
0
0
Z = 4M
Base
x4
x6
x3
x1
3
0
-2
x2
-2
1
0
x3
0
0
1
x4
1
0
0
x5
0
-1
0
x6
0
1
0
x7
-1
-2
1
b
10
1
1
ci
-1
1-M
0
0
M
0
3M-1
Z = M+1
Base
x4
x2
x3
x1
3
0
-2
x2
0
1
0
x3
0
0
1
x4
1
0
0
x5
-2
-1
0
x6
2
1
0
x7
-5
-2
1
b
12
1
1
ci
-1
0
0
0
1
M-1
M+1
Z=2
Base
x1
x2
x3
x1
1
0
0
x2
0
1
0
x3
0
0
1
x4
1/3
0
2/3
x5
-2/3
-1
-4/3
x6
2/3
1
4/3
x7
-5/3
-2
-7/3
b
4
1
9
ci
0
0
0
1/3
1/3
M - 1/3
M - 2/3
Z = -2
Zopt = -2
66 - Metodo del Simplex
Notas:
4) Una vez que una variable artificial es reemplazada por una variable real, no es necesario
mantenerla en las tablas
5) Cuando el método termina con una solución óptima en la que hay una o más variables artificiales
en la base mayores que cero ⇒ el problema original no tiene ninguna solución factible, porque
no podemos encontrar ninguna solución con las variables del problema de partida
6) En el ordenador M = ? Si el método está programado en ordenador no se trabaja con la letra M.
Hay que asignar un valor a la constante M.
2. MÉTODO DE LAS 2 FASES (TWO PHASES).
Se resuelve en dos fases:
Fase 1: Se resuelve el problema
Min W = ∑v.artificiales
Sujeto a sistema artificial
Si llegamos a que el valor mínimo es cero ⇒ W =
∑v.artificiales(≥0) = 0 ⇒ Todas son cero y tenemos una solución factible
básica del sistema original.
En caso de que el valor mínimo sea positivo, W > 0 ⇒ alguna v.artificial es >0 ⇒ el problema
original no tiene ninguna solución factible.
Fase 2: La tabla final de la fase 1 pasa a ser la inicial de la fase 2 cambiando la función del objetivo por la
original. Se aplica el simplex.
Nota.
cero).
La fase 1 puede terminar con Wopt=0 y alguna variable artificial en la base (que tendrá valor
En este caso, se pasa a la fase 2 (escribiendo su Cj=0) y se procede a echarla de la base aunque
para ello se viole el criterio de salida.
En el momento en que haya salido de la base eliminamos su columna.
67 - Metodo del Simplex
Fase 1. (Min W = x6 + x7, sujeto a sistema artificial)
CB
0
1
1
CB
0
1
0
CB
0
0
0
Cj
Base
x4
x6
x7
0
x1
1
-4
-2
0
x2
-2
1
0
0
x3
1
2
1
0
x4
1
0
0
0
x5
0
-1
0
1
x6
0
1
0
1
x7
0
0
1
b
11
3
1
ci
6
-1
-3
0
1
0
0
W=4
Base
x4
x6
x3
x1
3
0
-2
x2
-2
1
0
x3
0
0
1
x4
1
0
0
x5
0
-1
0
x6
0
1
0
x7
-1
-2
1
b
10
1
1
ci
0
-1
0
0
1
0
3
W=1
Base
x4
x2
x3
x1
3
0
-2
x2
0
1
0
x3
0
0
1
x4
1
0
0
x5
-2
-1
0
x6
2
1
0
x7
-5
-2
1
b
12
1
1
ci
0
0
0
0
0
1
1
W=0
x1 = 0, x2 = 1, x3 = 1, x4 =12,
x5 = x6 = x7 = 0
68 - Metodo del Simplex
Fase 2. (y volvemos a la función objetivo inicial, es decir, valores iniciales de Cj)
CB
0
1
1
CB
-3
1
1
Cj
Base
x4
x2
x3
-3
x1
3
0
-2
1
x2
0
1
0
1
x3
0
0
1
0
x4
1
0
0
0
x5
-2
-1
0
b
12
1
1
ci
-1
0
0
0
1
Z=2
Base
x1
x2
x3
x1
1
0
0
x2
0
1
0
x3
0
0
1
x4
1/3
0
2/3
x5
-2/3
-1
-4/3
b
4
1
9
0
0
0
1/3
1/3
Z = -2
ci
x1 = 4, x2 = 1, x3 = 9, x4 = x5 = 0
Ejemplo relativo a la nota anterior:
Max Z = 2x1 + x2 + x3
4x1 + 6x2 + 3x3 ≤ 8
3x1 - 6x2 - 4x3 - x4 ≤ 1
2x1 + 3x2 - 5x3 - x4 = 4
Zopt= -2
4x1 + 6x2 + 3x3 + x5
=8
3x1 - 6x2 - 4x3 - x4 + x6 = 1
2x1 + 3x2 - 5x3 - x4 + x7 = 4
(x5 v.holgura)
(x6 v.holgura)
(x7 v.artificial)
Fase 1: Min W = x7
CB
0
0
1
Cj
Base
x5
x6
x7
ci
CB
0
0
1
Base
x2
x6
x7
ci
0
x1
4
3
2
0
x2
6
-6
3
0
x3
3
-4
-5
0
x4
0
-1
-1
0
x5
1
0
0
0
x6
0
1
0
1
x7
0
0
1
b
8
1
4
-2
-3
5
1
0
0
0
W=4
x1
2/3
7
0
x2
1
0
0
x3
1/2
-1
-13/2
x4
0
-1
-1
x5
1/6
1
-1/2
x6
0
1
0
x7
0
0
1
b
4/3
9
0
0
0
13/2
1
1/2
0
0
W=0
Final fase 1.
69 - Metodo del Simplex
Fase 2
se mantiene
CB
1
0
0
Cj
Base
x2
x6
x7
ci
CB
1
2
0
Base
x2
x1
x7
ci
CB
1
2
1
Base
x2
x1
x3
ci
2
x1
2/3
7
0
1
x2
1
0
0
1
x3
1/2
-1
-13/2
0
x4
0
-1
-1
0
x5
1/6
1
-1/2
0
x6
0
1
0
0
x7
0
0
1
b
4/3
9
0
4/3
0
1/2
0
-1/6
0
0
Z = 4/3
x1
0
1
0
x2
1
0
0
x3
25/42
-1/7
-13/2
x4
2/21
-1/7
-1
x5
9/126
1/7
-1/2
x6
-2/21
1/7
0
x7
0
0
1
b
10/21
9/7
0
0
0
29/42
4/21
-5/14
-4/21
0
Z = 64/21
x1
0
1
0
x2
1
0
0
x3
0
0
1
x4
1/273
-11/91
2/13
x5
1/39
2/13
1/13
x6
-2/21
1/7
0
x7
25/273
-2/91
-2/13
b
10/21
9/7
0
0
0
0
23/273
-16/39
-4/21
29/273
Z = 64/21
No prestamos atención
a esta columna
CB
1
2
0
Base
x2
x1
x4
ci
x1
0
1
0
x2
1
0
0
x3
-1/42
11/14
13/2
x4
0
0
1
x5
1/42
3/14
1/2
x6
-2/21
1/7
0
0
0
-23/42
0
-19/42
-4/21
x7
b
10/21
9/7
0
Z = 64/21
óptima
Comparación entre el Método Big M y el Método de las 2 fases.
9
9
9
9
Igual número de tablas en general.
⇓
Igual número de cálculos en general.
M ≡ “problemas” en el ordenador
2 fases ≡ “problemas” si hay una o más variables artificiales = 0 en la base en la última tabla de
la 1ª fase.
70 - Metodo del Simplex
Eficiencia computacional del Método del Simplex.
9
El número de tablas es sensible al número de restricciones (Simplex revisado). La rapidez del
simplex depende más del número de restricciones que del número de variables.
9
Problema de minimizar con muchas variables:
ci
>0
>0
>0
...
<0
la primera variable con ci <0 entra en la base
9 Otros métodos:
¾ Elipsoides (KHACHIAN).
¾ Punto interior (Karmarkar).
71 - Metodo del Simplex
72 - Metodo del Simplex
Tema 3: Método del Simplex Revisado.
El método revisado o método del simples con multiplicadores: Conceptos básicos. Vector de Multiplicadores.
Se basa en los mismos principios que el simplex, pero en cada iteración no se calcula toda la tabla, y la
información que se necesita para pasar de una solución factible básica a otra se obtiene directamente de las ecuaciones
originales.
Desarrollo del método.
El método del simplex revisado trabaja con la idea fundamental de que cualquier tabla del simplex
correspondiente a una solución factible básica puede generarse directamente de las ecuaciones originales por medio de
operaciones matriciales.
Max (o Min) Z = Cx
Ax = b
x≥0
x1
...
C = (C1, C2, ..., Cn)
1xn
x=
xm
nx1
xn
A=
A=
a11
a21
...
a12
a22
...
...
...
...
a1n
a2n
...
mxn
am1
am2
...
amn
m<n
[ P1
P2
…
Pn ]
b=
b1
b2
...
mx1
bm
Pj =
a1j
a2j
…
amj
mx1
∀j = 1, ..., n
Definición. Se llama matriz básica B a una submatriz B de A, formada por m columnas linealmente
independientes.
La idea fundamental del método del simplex revisado se basa en lo siguiente: Supongamos que tenemos una solución
factible con variables básicas xi1 ... xim. Asociadas a estas variables, se construye una matriz básica B como
B = (Pi1 ... Pim)
⎛ X b ⎞ ⎛b ⎞
⎟⎟ = ⎜⎜ ⎟⎟ siendo
y la solución factible básica asociada como X = ⎜⎜
⎝ XN ⎠ ⎝0⎠
matrix m x m
Programación lineal avanzada - 1
−1
−1
y b pudiéndose calcular como b = B b y cualquier columna de la tabla del simplex Pj = B Pj
Para saber si la solución es óptima:
Se llama vector de multiplicadores al vector π = (π1, π2, ..., πm)
π = CB B-1
(mxm)
(1xm)
Se calculan los beneficios relativos
c j = c j − cB Pj = c j − πPj
Programación lineal avanzada - 2
Ejemplo:
Min Z = -3x1 + x2 + x3
sujeto a x1 – 2x2 + x3 ≤ 11
-4x1 + x2 + 2x3 ≥ 3
2x1
- x3 = -1
xi ≥ 0
Min Z = -3x1 + x2 + x3 + Mx6 + Mx7
x1 - 2x2 + x3 + x4
= 11
-4x1 + x2 + 2x3
– x5 + x 6
=3
-2x1
+ x3
+ x7 = 1
xi ≥ 0
A=
[ P1
P2
…
P7]
P1 =
1
-4
0
P2 =
-2
1
1
P3 =
P7 =
0
0
1
b=
11
3
1
1
2
0
P4 =
1
0
0
Base inicial { x4, x6, x7} ⇒ B = (P4 P6 P7 ) =
P5 =
0
-1
0
P6 =
1
0
0
0
0
1
0
0
1
B-1 = I
La tabla 1 del método del simplex revisado será:
Base
x4
x6
x7
1
0
0
B-1
0
1
0
0
0
1
_
b
11
3
1
A completar más
adelante
π = (π1, π2, π3) = CBB-1= (C4, C6, C7) B-1 = (0, M, M)•I = (0, M, M)
Los beneficios relativos de las variables no básicas:
_
Cj = Cj - πPj
j = 1, 2, 3, 5
Programación lineal avanzada - 3
0
1
0
_
C1 = -3 – (0, M, M)
1
-4
-2
= -3 + 6M
_
C2 = 1 – (0, M, M)
-2
1
0
=1–M
_
C3 = 1 – (0, M, M)
1
2
1
= 1 – 3M
_
C5 = 0 – (0, M, M)
0
-1
0
=M
Entra x3 en la base. La columna pivote es:
1
0
0
1
P3 = B P3 = 0
1
0
2
0
0
1
1
−1
1
=
2
1
Tabla 1.
_
b
11
3
1
B-1
Base
x4
x6
x7
1
0
0
0
1
0
0
0
1
_
Columna pivote P3
1
2
1
Var. que entra
x3
Regla mínima proporción min{11/1, 3/2, 1/1} ⇒ sale x7
1
0
0
Nueva base {x4, x6, x3} ⇒ B = [P4 P6 P3] =
⇒ B-1 =
_
b = B-1b = B-1
11
3
1
1
0
0
0
1
0
=
10
1
1
-1
-2
1
B-1
Base
x4
x6
x3
0
1
0
1
0
0
0
1
0
-1
-2
1
_
b
10
1
1
π = CBB-1 = (C4, C6, C3)•B-1 = (0, M, 1)•B-1 = (0, M, -2M+1)
Programación lineal avanzada - 4
1
2
1
⇒
_
C1 = -3 - (0, M, -2M+1)
1
-4
-2
= -1
_
C2 = 1 – M
_
C5 = M
_
entra x2 en la base P2 = B-1 P2 = B-1
-2
1
0
-2
1
0
=
Tabla 2.
B-1
Base
x4
x6
x3
1
0
0
0
1
0
0
0
1
_
b
10
1
1
_
P2
-2
1
0
var que entra
x2
Regla mínima proporción min{10/-2, 1/1, 1/0} ⇒ sale x6
1
0
0
Nueva base {x4, x2, x3} ⇒ B = [P4 P2 P3] ⇒ B-1 =
_
b = B-1b =
-5
-2
1
12
1
1
B-1
Base
x4
x2
x3
π = (0, 0, 1)
2
1
0
1
0
0
_
C1 = -1 ⇒ entra x1
1
0
0
2
1
0
-5
-2
1
_
b
12
1
1
2
1
0
-5
-2
1
= (0, 1, -1)
_
P1 =
1
0
0
2
1
0
-5
-2
1
1
-4
-2
=
_
C5 = 1
Tabla 3.
Programación lineal avanzada - 5
3
0
-2
B-1
Base
x4
x2
x3
1
0
0
2
1
0
-5
-2
1
_
b
12
1
1
Var que entra
x1
_
P1
3
0
-2
Nueva base {x1, x2, x3}
Tabla 4.
B-1
Base
1
x1
x2
x3
1
π = (-3, 1, 1)
_
C4 = 1/3
_
C5 = 1/3
2
/3
0
2
/3
/3
0
2
/3
/3
1
4
/3
2
/3
1
4
/3
-5/3
-2
-7/3
-5/3
-2
-7/3
_
b
4
1
9
= [-1/3, 1/3, 2/3]
Por lo tanto, la tabla 4 es óptima y la solución óptima es:
x1 = 4
x2 = 1
x3 = 9
x4 = x5 = 0
_
4
Z = CB•b = (-3, 1, 1)
1 = -2
9
Ventajas del método revisado del Simplex sobre el método del Simplex regular.
1. El simplex revisado trabaja sobre una tabla cuyo tamaño lo determina el número de restricciones.
2.
3.
Si se calcula B-1 en cada iteración directamente de los datos del principio, no se acumulan errores de
redondeo.
Los conceptos teóricos del método ayudan a entender conceptos de teoría de la dualidad y análisis de
sensibilidad.
Programación lineal avanzada - 6
Tema 4: Teoría de la Dualidad.
2x1
La teoría de la dualidad se centra en el hecho de que, asociado a cualquier problema de programación lineal,
existe otro problema de programación lineal que se llama su dual, de manera que al resolver el primero se resuelve
también el segundo sin coste computacional adicional.
Problemas primal-dual simétrico. Propiedades y relaciones de los problemas primal y dual.
Un problema de programación lineal está escrito en forma simétrica si todas las variables son no
negativas, y todas las restricciones son desigualdades (si el problema es de maximizar, con ≤, y si es de minimizar,
con ≥).
PRIMAL
Max Z = Cx
Ax ≤ b
x≥0
Min Z = Cx
Ax ≥ b
x≥0
Max Z = (C1, C2, …, Cn) …
a11
a21
...
am1
x1
x2
…
xn
a12
a22
...
am2
...
...
...
...
a1n
a2n
...
amn
x1
xn
x1
x2
…
xn
≤
b1
b2
...
bm
≥0
DUAL
Min W = by
yA ≥ C
y = (y1, y2, …, ym)
y≥0
↓
Min W = b1y1 + b2y2 + … + bmym
Programación lineal avanzada - 7
a11y1 + a21y2 + ... + am1ym ≥ C1
a12y1 + a22y2 + ... + am2ym ≥ C2
...
...
...
...
a1ny1 + a2ny2 + ... + amnym ≥ Cn
…
y1, y2, …, ym ≥ 0
1.
2.
3.
4.
5.
6.
Reglas generales de construcción del problema dual.
Definir una variable dual no negativa por cada restricción del problema primal.
Hacer que el vector de costes del problema primal pase a ser el vector de las constantes de la derecha del
problema dual.
Hacer que el vector de constantes de la derecha del primal sea el vector de costes del dual.
La traspuesta de la matriz de coeficientes del primal es la matriz de coeficientes del dual.
Invertir la dirección de las desigualdades de las restricciones.
Invertir Maximizar por Minimizar (y viceversa).
Problema Primal
Max Z = Cx
Ax ≤ b
x≥0
Problema Dual
Min W = by
yA ≥ C siendo A la matriz
y ≥ 0 traspuesta de la matriz A
del problema primal (y٠A ⇔ At٠yt)
Amxn
x n variables
b m restricciones
y m variables
C n restricciones
Teoremas de la dualidad.
Teorema 1 (Teorema débil de la dualidad).
Consideremos los problemas de programación lineal primal-dual simétricos:
Max Z = Cx
Ax ≤ b
x≥0
↔
Min W = yb
yA ≥ C
y≥0
Se tiene que el valor de la función del objetivo del problema dual (para toda solución factible del dual) es
siempre mayor o igual que el valor de la función del objetivo primal (en cualquier solución factible del problema
primal).
Demostración.
Sean x0 e y0 solución factible del primal y dual, respectivamente
x0 solución factible del problema primal ⇒ Ax0 ≤ b
x0 ≥ 0
(1)
y0 solución factible del problema dual ⇒ y0A ≥ C
y0 ≥ 0
(2)
(la solución factible cumple las restricciones)
(1) ⇒ y0Ax0 ≤ y0b
(2) ⇒ y0Ax0 ≥ Cx0
Entonces
(pues y0 ≥ 0)
(pues x0 ≥ 0)
Cx0 ≤ y0Ax0 ≤ y0b
Z0 (primal)
W0 (dual)
(Z y W funciones objetivo)
Programación lineal avanzada - 8
Corolarios.
1) El valor de la función del objetivo Z del problema primal para cualquier solución factible del primal es
una cota inferior para el valor mínimo de la función del objetivo dual.
2) Análogamente, el valor de la función del objetivo del problema dual para cualquier solución factible es
una cota superior para el valor máximo de la función del objetivo primal.
3) Si el problema primal tiene solución no acotada entonces el problema dual no tiene ninguna solución
factible.
4) Análogamente, si el problema dual tiene solución no acotada entonces el primal no tiene ninguna
solución factible.
5) Si el problema primal tiene solución, y el dual no, entonces el primal es no acotado.
6) Si el problema dual tiene solución, y el primal no, entonces el dual es no acotado.
7) Si el primal no tiene solución ⇒ el problema dual no tiene solución o es no acotado.
8) Si el problema dual no tiene solución ⇒ el problema primal no tiene solución o es no acotado.
Ejemplo 1.
Primal
Dual
Max Z = x1 + 2x2 + 3x3 + 4 x4
Sujeto a
x1 + 2x2 + 2x3 + 3x4 ≤ 20
2x1 + x2 + 3x3 + 2x4 ≤ 20
xi ≥ 0
Min W = 20y1 + 20y2
Sujeto a
y1 + 2y2 ≥ 1
2y1 + y2 ≥ 2
2y1 + 3y2 ≥ 3
3y1 + 2y2 ≥ 4
yi ≥ 0
ej.
x0 = (x10, x20, x30, x40)
(1, 1, 1, 1)
Æ Z (x0) = 10
cualquier solución factible del problema dual verifica W ≥ 10 ⇒ Wopt ≥ 10
Ejemplo 2.
Primal
Dual
Max Z = x1 + x2
- x 1 + x2 + x3 ≤ 2
-2x1 + x2 - x3 ≤ 1
xi ≥ 0
Min W = 2y1 + y2
- y1 - 2y2 ≥ 1
y1 + y2 ≥ 1
y1 - y2 ≥ 0
yi ≥ 0
El primal tiene solución (por ejemplo x0 = (0, 0, 0) es una solución factible del primal).
Pero el dual no tiene ninguna solución factible (si yi ≥ 0, - y1 - 2y2 siempre ≤ 0).
Por el corolario 5, el primal tiene solución no acotada.
Programación lineal avanzada - 9
Ejemplo 3.
Primal
Dual
Min Z = -2x1 – 3x2
x1 - x2 ≥ 2
- x 1 + x2 ≥ 1
x1, x2 ≥ 0
Max W = 2y1 + y2
y1 - y2 ≤ -2
- y1 + y2 ≤ -3
yi≥ 0
Ambos, primal y dual, no tienen soluciones factibles (corolarios 7 y 8).
Teorema 2 (Criterio de optimalidad).
Si existen soluciones factibles x0 e y0 para el problema primal y dual, respectivamente, tales que Cx0 = y0b ⇒
x0 e y0 son soluciones óptimas del problema primal y dual, respectivamente.
Demostración (ejercicio)
Primal
En el Ejemplo 1
Max Z = x1 + 2x2 + 3x3 + 4 x4
Sujeto a
x1 + 2x2 + 2x3 + 3x4 ≤ 20
2x1 + x2 + 3x3 + 2x4 ≤ 20
xi ≥ 0
Dual
Min W = 20y1 + 20y2
Sujeto a
y1 + 2y2 ≥ 1
2y1 + y2 ≥ 2
2y1 + 3y2 ≥ 3
3y1 + 2y2 ≥ 4
yi ≥ 0
si tomamos:
x0 = (0, 0, 4, 4)
y0 = (1’2, 0’2)
Z0 = 28
W0 = 28
x0 e y0 óptimas del primal y dual respectivamente
Teorema 3 (Teorema fundamental de la dualidad).
Si el problema primal y el dual tienen soluciones factibles, entonces los dos tienen soluciones óptimas cuyos
valores de la función objetivo coinciden.
Teorema 4 (Teorema de las holguras complementarias).
Sean x0 e y0 soluciones factibles del problema primal y dual:
Max Z = Cx
Min W = yb
Ax ≤ b
yA ≥ C
x≥0
y≥0
x0 e y0 son soluciones óptimas ⇔ (y0A – C)x0 + y0(b – Ax0) = 0
Demostración.
(y0A - C)x0 + y0(b - Ax0) = 0 ⇔ y0Ax0 – Cx0 + y0b – y0Ax0 = 0 ⇔ - Cx0 + y0b = 0 ⇔ Cx0 = y0b
Programación lineal avanzada - 10
Entonces x0 e y0 óptimas ⇔ Cx0 = y0b
“⇒” por el teorema 3 de la dualidad
“⇐” por el teorema 2
Condiciones de holguras complementarias.
Supongamos x0 solución factible del problema primal e y0 solución factible del problema dual:
Ax0 ≤ b n variables
y0A ≥ C m variables
x0 ≥ 0 m ecuaciones
y0 ≥ 0
n ecuaciones
A٠
⇕
x10
x20
…
xn0
⇕
b1
b2
…
bm
≤
(y10, y20 , …, ym0)A ≥ (C1, C2, …, Cn)
Si lo escribimos con holguras:
A٠
x10
x20
…
xn0
U1 0
U2 0
…
Um 0
+
b1
b2
…
bm
=
(*)
siendo Ui0 ≥ 0 ∀i = 1, 2, …, m el vector de holguras
(y10, y20 , …, ym0)A – (V10, V20, …, Vn0) = (C1, C2, …, Cn)
siendo Vi0 ≥ 0 ∀i = 1, 2, …, n el vector de holguras
(**)
Ax0 + U0 = b ⇒ U0 = b - Ax0
y0A – V0 = C ⇒ V0 = y0A - C
(*)
(**)
El teorema 4 dice:
x0 e y0 son soluciones óptimas óptimas ⇔ (y0A - C)x0 + y0(b - Ax0) = 0 ⇔ V0x0 + y0U0 = 0 ⇔
x1 0
x2 0
…
xn 0
⇔ (V10, V20, …, Vn0)
n
0
0
m
0
0
⇔ ∑ Vj xj + ∑ yj Uj = 0
j=1
j=1
Vj 0 ٠ xj 0 = 0
+
⇔
v. primal j-ésima
holgura dual j-ésima
(y10, y20 , …, ym0) …
Vj 0xj 0 = 0
yj 0Uj 0 = 0
U1 0
U2 0
=0⇔
Um 0
j=1…n
j=1…m
yj 0Uj 0 = 0
sistema o condiciones
de holguras
complementarias
holgura primal
v. dual j-ésima
Se obtiene:
1) Si xj 0 > 0 ⇒ Vj 0 = 0
2) Si Vj 0 > 0 ⇒ xj 0 = 0
3) Si yj 0 > 0 ⇒ Uj 0 = 0
Programación lineal avanzada - 11
4) Si Uj 0 > 0 ⇒ yj 0 = 0
Ejemplo 1:
Max Z = x1 + 2x2 + 3x3 + 4 x4
Sujeto a
x1 + 2x2 + 2x3 + 3x4 ≤ 20
2x1 + x2 + 3x3 + 2x4 ≤ 20
xi ≥ 0
→ x + 2x + 2x + 3x + U = 20
→ 2x + x + 3x + 2x + U = 20
1
2
1
3
2
4
3
1
4
2
xi, Ui ≥ 0
Min W = 20y1 + 20y2
Sujeto a
y1 + 2y2 ≥ 1
2y1 + y2 ≥ 2
2y1 + 3y2 ≥ 3
3y1 + 2y2 ≥ 3
yi ≥ 0
→ y + 2y - V = 1
→ 2y + y - V = 2
→2y + 3y - V = 3
→3y + 2y - V = 4
1
1
1
1
2
1
2
2
2
3
2
4
yi, Vi ≥ 0
La solución óptima del dual es:
y10 = 1’2
y20 = 0’2
W0 = 28
Condiciones de holgura complementarias:
U1 0 y10 = 0
U2 0 y20 = 0
x1 0 V10 = 0
x2 0 V20 = 0
x3 0 V30 = 0
x4 0 V40 = 0
y10 = 1’2 > 0 ⇒ U1 0 = 0
y20 = 0’2 > 0 ⇒ U2 0 = 0
y10 + y20 = 1’6 > 1 ⇒ V10 > 0 ⇒ x1 0 = 0
2y10 + y20 = 2’6 > 2 ⇒ V20 > 0 ⇒ x2 0 = 0
2y10 + 3y20 = 3 ⇒ V30 = 0 ⇒ x3 0 ≥ 0
3y10 + 2y20 = 4 ⇒ V40 = 0 ⇒ x4 0 ≥ 0
Y nos queda del sistema de ecuaciones del problema primal:
2x3 0 + 3x4 0 = 20
x3 0 = 4
0
0
3x3 + 2x4 = 20
x4 0 = 4
x0 = (0, 0, 4, 4)
Zopt = 28
(que tiene que coincidir con el valor óptimo de la
función objetivo dual)
Problemas asimétricos primal-dual.
Consideremos un problema de programación lineal no simétrico, por ejemplo:
Primal
Max Z = 2x1 – 3x2
Sujeto a
6x1 – 3x2 ≤ 15
2x1 + 3x2 ≥ 5
- x1 + 4x2 = -1
Programación lineal avanzada - 12
x1 cq signo, x2 ≤ 0
Cualquier problema no simétrico puede convertirse en uno equivalente que sí lo sea
Max Z = Cx
Ax ≤ b
x≥0
x1 = x1' – x2'
x2 = - x3'
- x1 + 4x2 = -1 ⇒
x3' ≥ 0
x1', x2' ≥ 0
- x1 + 4x2 ≥ -1 Æ x1 - 4x2 ≤ 1
- x1 + 4x2 ≤ -1
2x1 + 3x2 ≥ 5 Æ - 2x1 – 3x2 ≤ -5
Max Z = 2x1' – 2x2' – 3x3'
Sujeto a 6x1' – 6x2' + 3x3' ≤ 15
-2x1' + 2x2' + 3x3' ≤ -5
x1' - x2' + 4x3' ≤ 1
- x1' + x2' - 4 x3' ≤ -1
xi'≥ 0
Dual
Min W = 15w1 - 5w2 – w3 + w4
Sujeto a 6w1 – 2w2 + w3 - w4 ≥ 2
-6w1 + 2w2 - w3 + w4 ≥ -2
3w1 + 3w2 + 4w3 – 4w4 ≥ 3
wi ≥ 0
Min W = wb
wA ≥ C
w≥0
Llamamos
y1 = w1 ≥ 0
y2 = - w2 ≤ 0
y3 = w3 - w4 ≥ 0
Min W = 15y1 + 5y2 – y3
Sujeto a 6y1 + 2y2 + y3 ≥ 2
-6y1 – 2y2 - y3 ≥ -2
3y1 – 3y2 + 4y3 ≥ 3
Min W = 15y1 + 5y2 – y3
6y1 + 2y2 + y3 = 2
3y1 – 3y2 + 4y3 ≥ 3
y1 ≥ 0, y2 ≤ 0, y3 cq signo
6y1 + 2y2 + y3 = 2
3y1 – 3y2 + 4y3 ≥ 3
Max Z = 2x1 – 3x2
6x1 – 3x2 ≤ 15
2x1 + 3x2 ≥ 5
- x1 + 4x2 = -1
x1 cq signo, x2 ≤ 0
Programación lineal avanzada - 13
PRIMAL (Maximizar)
DUAL (Minimizar)
٠ A matriz de coeficientes
٠ Traspuesta
٠ Vector de constantes de ٠ Vector de coeficientes
la derecha
de la f. objetivo
٠ Vector de coeficientes ٠ Vector de constantes de
de la f. objetivo
la derecha
٠ i-ésima restricción con ٠
Variable i-ésima de
=
cualquier signo
٠ i-ésima restricción con ٠ Variable i-ésima ≥ 0
≤
٠ i-ésima restricción con ٠ Variable i-ésima ≤ 0
≥
٠ Variable j de cualquier ٠ Restricción j con =
signo
٠ Variable j ≥ 0
٠ Restricción j con ≥
٠ Variable j ≤ 0
٠ Restricción j con ≤
Programación lineal avanzada - 14
Ejercicio 1.
Primal
Max Z = x1 + 4x2 + 3x3
2x1 + 3x2 – 5x3 ≤ 2
3x1 - x2 + 6x3 ≥ 1
x1 + x2 + x3 = 4
x1 ≥ 0, x2 ≤ 0, x3 cq signo
Dual
Min W = 2y1 + y2 + 4y3
2y1 + 3y2 + y3 ≥ 1
3y1 - y2 + y3 ≤ 4
-5y1 + 6y2 + y3 = 3
y1 ≥ 0, y2 ≤ 0, y3 cq signo
Ejercicio 2.
Primal
Min Z = 2x1 + x2 - x3
x1 + x2 - x3 = 1
x 1 - x 2 + x3 ≥ 2
x2 + x3 ≤ 3
x1 ≥ 0, x2 ≤ 0, x3 cq signo
Dual
Max W = y1 + 2y2 + 3 y3
y1 + y2 ≤ 2
y1 - y2 + y3 ≥ 1
-y1 + y2 + y3 = -1
y1 cq signo, y2 ≥ 0, y3≤ 0
Los teorema del 1 al 4 de la teoría de la dualidad también se aplican a los problemas asimétricos, con las
modificaciones correspondientes.
En el Ejercicio 2:
x1 0 = 2
x2 0 = 0
solución factible primal
x3 0 = 1
y10 = 1
y20 = 0
y30 = 0
solución factible dual
Por el teorema 1 de la dualidad Z0 ≥ W0 ⇒ Cx0 = 3 > y0b = 1
En el Ejercicio 1:
x1 0 = 0
x2 0 = 0
x3 0 = 4
Z0 = 12
W0 = 12
solución factible primal
y10 = 0
y20 = 0
y30 = 3
Programación lineal avanzada - 15
Por el teorema 2 ambas son soluciones óptimas.
Si el problema viene en forma estándar:
Max Z = Cx
(Min) su dual es
Ax = b
x≥0
Min W = yb
yA ≥ C
y cq signo
Max W = yb
yA ≤ C
y cq signo
Programación lineal avanzada - 16
Cálculo de la solución óptima del problema dual a partir de la tabla óptima del problema primal.
Consideremos el problema de programación lineal en forma estándar:
Min Z = Cx
(dual) Max W = yb
Ax = b
yA ≤ C
x≥0
y cq signo
xB
Sea x0 =
la solución óptima del primal.
xN
xB = B-1b, siendo B la base óptima
_
Cj = Cj – πPj ≥ 0 ∀j por ser solución óptima donde π = CBB-1
En notación matricial C – πA ≥ 0 ⇔ πA ≤ C ⇒ el vector π es una solución factible del problema dual.
Además W(π) = πb = CBB-1b = CBxB = Zóptimo ⇒ π es óptima del problema dual.
Ejemplo:
Primal
Min Z = -3x1 + x2 + x3
x1 - 2x2 + x3 ≤ 11
-4x1 + x2 + 2x3 ≥ 3
-2x1 + x3 = 1
xi ≥ 0
Dual
Max W = 11y1 + 3y2 + y3
y1 - 4y2 – 2 y3 ≤ - 3
-2y1 + y2
≤1
y1 + 2y2 + y3 ≤ 1
y1 ≤ 0, y2 ≥ 0, y3 cq signo
Resolvemos el problema primal: la solución óptima es B = [P1 P2 P3]
x1 = 4
x2 = 1
x3 = 9
Z0 = -2
-1
1
1
-2
1
/3 2/3
-1
-4
1
2
= (-3, 1, 1)
0 1
π = CBB = (-3, 1, 1)
2
-2
0
1
/3 4/3
Se comprueba que π es solución factible del problema dual y que
W(π) = 11(-1/3) + 3(1/3) + 1(2/3) = -2
Programación lineal avanzada - 17
-5/3
-2 = [-1/3, 1/3, 2/3]
-7/3
Cómo ver la solución dual óptima en la tabla óptima del simplex del problema primal.
Base
Solución ( b )
•
•
•
_
Cj
Sean {i1, i2, …, im} los índices de las variables básicas de la primera tabla del Simplex:
1ª tabla
Base
x1
x2
xi1
xi2
xi1
xi2
…
xim
٠
٠
…
٠
٠
٠
…
٠
1
0
…
0
0
1
…
0
…
xim
…
xn
b
٠
٠
0
0
…
1
…
٠
En cualquier tabla, B-1 aparece en las columnas de las variables básicas iniciales.
En particular, en la última tabla:
Base
xi1
xi2
_
_
…
xim
_
…
Ci1
Ci2
_ _
_
(Ci1, Ci2, …, Cim) = (Ci1, Ci2, …, Cim) – π[Pi1 … Pim] =
Programación lineal avanzada - 18
Cim
b
1
0
…
0
= (Ci1, Ci2, …, Cim) – π
0
1
…
0
…
…
…
…
0
0
…
1
_ _
_
⇒ π = (Ci1, Ci2, …, Cim) – (Ci1, Ci2, …, Cim)
Tema 5: Método del Simplex Dual.
Conceptos fundamentales. Bases factibles dual y primal.
Consideremos un problema de programación lineal estándar:
Min Z = Cx
Ax = b
x≥0
Amxn
x=
b=
b1
…
bm
A = (P1 … Pn)
C = (C1, …, Cn)
x1
…
xn
m<n
Sea B ⊂ A una submatriz de A formada por m columnas de A linealmente independientes. Se dice que B es
una base factible primal (o base factible del problema primal) si B-1b ≥ 0.
Sea B ⊂ A una submatriz de A formada por m columnas de A linealmente independientes. Se dice que B es
una base factible dual (o base factible del problema dual) si:
C – CBB-1A ≥ 0 (C – CBB-1A ≤ 0 si el p. primal fuese de maximizar)
Consecuencias de las definiciones.
• Que B sea factible primal significa que se le puede asociar una solución:
x=
xB
xN
con xB = B-1b ≥ 0
• Que B sea factible dual significa que C – CBB-1A ≥ 0 ⇒ C ≥ CBB-1A.
Llamando yB = CBB-1 → C ≥ yBA ⇔ yBA ≤ C ⇒ yB así definida es una solución factible del problema dual.
Además C – yBA ≥ 0 .
Como los beneficios relativos del problema primal se calculan como
_
C = C – πA, = C – CBB-1A = C – yBA ≥ 0 ⇒ xB = B-1b es una solución factible y óptima del problema primal.
Luego como Wo = yBb = CBB-1 = CBxB = Zopt
Programación lineal avanzada - 19
yB y xB son soluciones óptimas del primal y dual.
Resumiendo, si una matriz B es a la vez una base factible primal y dual, sus soluciones asociadas xB = B-1b e
yB = CBB-1 son óptimas del primal y dual, respectivamente.
Desarrollo del método dual del Simplex.
Consideremos el ejemplo
Min Z = x1 + 4x2 + 3x4
Sujeto a:x1 + 2x2 – x3 + x4 ≥ 3
-2x1 - x2 + 4 x3 + x4 ≥ 2
xi ≥ 0
Introducimos variables de holgura x5 y x6:
x1 + 2x2 – x3 + x4 - x5 = 3
-2x1 - x2 + 4 x3 + x4 - x6 = 2
xi ≥ 0
Multiplicamos por -1:
-x1 - 2x2 + x3 - x4 + x5 = -3
2x1 + x2 - 4 x3 - x4 + x6 = -2
xi ≥ 0
Cj
1
4
0
3
0
0
CB
base
x1
x2
x3
x4
x5
x6
b
0
0
x5
x6
-1
2
-2
1
1
-4
-1
-1
1
0
0
1
-3
-2
cj
1
4
0
3
0
0
B = [P5 P6] = I ⇒ B-1 = I ⇒ b = B-1 b ≱ 0 pero C - CBB-1A= C = (1,4,0,3,0,0) ≥ 0
Luego B no es factible primal (porque ≱ 0), pero sí factible dual.
_
_
Si tenemos, por tanto, una tabla del Simplex Dual donde Cj ≥ 0 y b ≥ 0 ⇒ estaríamos ante la solución óptima.
Programación lineal avanzada - 20
Situación general.
Base
x1
x1
1
…
xr
…
xm
xm+1
…
xs
…
xn
b
y1,m+1
…
y1s
…
y1n
b1
0
…
xr
…
1
yr,m+1
…
yrs
…
yr n
Alguno
menor
que
cero
0
…
xm
1
0
0
br
yn,m+1
…
yns
…
ymn
bm
cn
≥0
0
cj
cm +1
…
cs
…
(min)
El método del simplex dual va a calcular una solución factible básica dual adyacente, reemplazando una
variable básica por una variable no básica.
1. Selección de la variable básica que deja la base.
_
Se elige la variable básica con el mayor valor negativo bi.
Sea br = min {bi} ⇒ xr deja la base, y la fila r es la fila pivote.
bi < 0
2. Selección de la variable no básica que entra en la base (Regla de la máxima proporción).
Entra en la base xs tal que
c
cs
= max j
yrs y rj < 0 yrj
y el valor yrs es el pivote para construir la nueva tabla.
En nuestro ejemplo:
_
1) El mayor valor negativo de los bi es -3 ⇒ x5 deja la base
_
_
2) Variable no básica
yij
Cj
Cj/yij
x1
-1
1
-1
x2
-2
4
-2
x4
-1
3
-3
max {-1, -2, -3} = -1 ⇒ x1 entra en la base y el pivote es -1. Aquí el pivote es negativo.
Programación lineal avanzada - 21
Tabla 2 del m.s.d.
Cj
1
4
0
3
0
0
CB
base
x1
x2
x3
x4
x5
x6
b
1
0
x1
x6
1
0
2
-3
-1
-2
1
-3
-1
2
0
1
3
-8
cj
0
2
1
2
1
0
sale x6
proporciones:
_
Cj
2
1
2
yij
-3
-2
-3
x2
x3
x4
-2/3 = -0’66
-1/2 = -0’5
-2/3 = -0’66
max {-0’66, -0’5} = -0’5 ⇒ entra x3 y el pivote es -2.
Tabla 3 del m.s.d.
CB
base
x1
x2
x3
x4
x5
x6
1
0
x1
x3
1
0
7
/2
3
/2
0
1
5
-2
-1
-1/2
-1/2
cj
0
1
0
1
2
/2
/2
3
/2
/2
1
/2
b
7
4
≥0
≥0
Z=7
_ _
Tabla óptima ⇔ Cj y b ≥ 0
Solución óptima del problema de programación lineal.
OBSERVACIONES.
1.-) Resolución de problemas de maximización por el método del simplex dual.
*La regla de salida es igual
* Cambia la regla de entrada, que ahora va a ser de la mínima proporción
Entra en la base xs tal que
cj
cs
= min
yrs yrj <0 yrj
2.-) ¿Qué sucede si falla el criterio de entrada? Es decir, todos los yij de la fila de la variable que sale son ≥ 0.
Entonces el problema no tiene solución. ¿Por qué? ejercicio
3.-)
¿Cómo se puede saber, utilizando el método del simplex dual, que el problema original tiene solución no
acotada? Ejercicio: pensarlo usando los corolarios 1-8 del teorema 1 de la dualidad
Programación lineal avanzada - 22
Tema 6: Análisis de Sensibilidad y Programación Paramétrica
1. Análisis de sensibilidad.
Se refiere al estudio de los cambios en la solución óptima y en el valor óptimo de Z debido a cambios en los
datos del problema inicial, pero sin resolver el problema de nuevo desde el principio.
Ejemplo.
Una compañía fabrica 3 productos A, B y C. Los beneficios por unidad de estos productos son 2, 3 y 1
respectivamente, y para su fabricación son necesarios 2 recursos: trabajo y material. Supongamos que los valores
óptimos a fabricar de los productos A, B y C se obtienen resolviendo el problema:
Max Z = 2x1 + 3x2 + x3
1
Sujeto a:
/3x1 + 1/3x2 + 1/3x3 ≤ 1
1
/3x1 + 4/3x2 + 7/3x3 ≤ 3
xi ≥ 0
(trabajo)
(material)
xi ≡ “unidades a fabricar del producto i”
Tabla1
Cj
2
3
1
0
0
CB
base
x1
x2
x3
x4
x5
x4
x5
1
1
1
b
0
0
/3
7
/3
1
0
0
1
1
3
3
1
0
0
Z=0
0
1
-1/4
7
/4
1
0
-1/4
3
/4
1
/4
0
-17/4
0
-9/4
Z=
x1
x2
1
0
0
1
-1
2
4
-1
-1
1
1
2
cj
0
0
-3
-5
-1
Z=8
cj
Tabla2
0
3
/3
1
/3
2
x4
x2
1
cj
5
/4
/4
1
/3
4
/3
/4
/4
9
27
/4
Tabla3
2
3
x1 = 1
x2 = 2
Zopt = 8 Solución óptima
Programación lineal avanzada - 23
1
P1 =
/3
1
/3
1
P2 =
/3
4
/3
1
P3 =
/3
1
P4 =
7
/3
0
0
P5 =
1
C = (2,3,1,0,0)
1
b=
3
Max Z = Cx
Ax = b
x≥0
x1
...
C = (C1, C2, ..., Cn)
1xn
x=
xm
nx1
xn
A=
A=
a11
a21
...
a12
a22
...
...
...
...
a1n
a2n
...
mxn
am1
am2
...
amn
m<n
[ P1
P2
…
Pn ]
b=
b1
b2
...
mx1
bm
Pi =
a1i
a2i
…
ami
Supongamos que tenemos una solución factible obtenida a partir de una base B
La solución básica
xB = b = B −1b
Z = CBb
cualquier columna:
Pj = B −1Pj
∀j de las variables no básicas
Programación lineal avanzada - 24
mx1
∀i = 1, ..., n
π = CB B-1
Los beneficios relativos:
c j = c j − πPj = c j − cB B −1Pj = c j − cB Pj
∀j de variables no básicas
Programación lineal avanzada - 25
1. Modificaciones en los coeficientes de la función del objetivo.
1.1 Cambio en el Cj de una variable no básica.
Variable no básica de interés → x3 (forma parte del problema pero no está en la base)
c3 = −3 . Mientras c3 < 0 la solución actual (x1 y x2 en la base) sigue siendo óptima
⎛ − 1⎞
c3 = c3 − c B P3 = c3 − (2,3)⎜⎜ ⎟⎟ = c3 − 4
⎝2⎠
c3 = c3 − 4 ≤ 0 ⇔ c3 ≤ 4 ⇒ si c3 > 4 entra x3 en la base
Si, por ejemplo, c3=6 ⇒ c3 = 2 y haríamos una tabla más:
CB
2
6
base
x1
x2
x3
x4
x5
b
x1
x3
1
0
1
/2
/2
0
1
7
1
/2
- /2
-1/2
1
/2
2
1
cj
0
-1
0
-4
-2
Z = 10
1
óptima
1.2 Cambio en el Cj de una variable básica.
Analicemos, por ejemplo, como se altera la tabla óptima modificando C1:
_
_
x1 y x2 están en la base ⇒ C1 = C2 = 0
_
_
C3 = C3 - CBP3 = 1 – (C1,3)
_
C4 = 0 – (C1,3)
_
C5 = 0 – (C1,3)
-1
2
= C1 - 5
4
-1
= -4C1 + 3
-1
1
= C1 - 3
_ _ _
La tabla 3 seguirá siendo óptima mientras C3, C4 y C5 ≤ 0 (estamos maximizando).
_
C3 ≤ 0 ⇔ C1 - 5 ≤ 0 ⇔ C1 ≤ 5
_
C4 ≤ 0 ⇔ -4C1 + 3 ≤ 0 ⇔ C1 ≥ 3/4
_
C5 ≤ 0 ⇔ C1 - 3 ≤ 0 ⇔ C1 ≤ 3
⇒ si C1 ∈ [3/4,3] la tabla 3 sigue siendo óptima, si
nos salimos del intervalo [3/4,3] la tabla ya
no es óptima
Programación lineal avanzada - 26
≤5
≥ 3/4
3
0
/4 3
≤3
5
Si, por ejemplo C1 = 1 la solución de la tabla 3 (x1 = 1, x2 = 2) sigue valiendo,
⎛1⎞
⎝ 2⎠
pero cambia Z opt = c B b = (1,3)⎜⎜ ⎟⎟ = 7
Cambio en Cj tanto de variables básicas como no básicas.
Hagamos, por ejemplo, C1=1, C2=4, C3=2
En la tabla 3 hay que cambiar
_
_
_
C1 = C2 = 0 (el Ci de las variables básicas siempre es 0)
_
-1
C3 = 2 – (1,4)
= -5 < 0
_
C4 = 0 – (1,4)
_
C5 = 0 – (1,4)
2
4
=0
-1
-1
= -3 < 0
1
La solución de la tabla 3 sigue siendo óptima. Ahora Zopt=9 y tendríamos una solución óptima alternativa
haciendo entrar a x4. Si alguno de los ci fuese > 0 la tabla no sería óptima y habría que seguir calculando tablas.
En general, hay que recalcular la fila de los ci . Si la tabla deja de ser óptima, habría que continuar con el
simplex.
Programación lineal avanzada - 27
2. Modificaciones en las constantes de la derecha de las restricciones.
Como, en cada tabla del simplex:
Base = { xi1, xi2, …, xim } ⇒ B = [Pi1, Pi2, …, Pim]
xB = b = B −1b
es el vector solución
Supongamos que en el problema del ejemplo se puede realizar 1 hora más de trabajo (b1 crece una unidad).
⎛ b ⎞ ⎛ 2⎞
b = ⎜⎜ 1 ⎟⎟ = ⎜⎜ ⎟⎟
⎝ b2 ⎠ ⎝ 3 ⎠
b1 = 1 → b1 = 2
En la tabla óptima, B = (P1 P2) y B
Luego
−1
⎛ 4 − 1⎞
⎟⎟
= ⎜⎜
⎝ −1 1 ⎠
⎛ 4 − 1⎞⎛ 2 ⎞ ⎛ 5 ⎞
⎟⎟⎜⎜ ⎟⎟ = ⎜⎜ ⎟⎟
b = B −1b = ⎜⎜
⎝ − 1 1 ⎠⎝ 3 ⎠ ⎝ 1 ⎠
Así, la nueva solución óptima es:
x1 = 5
x2 = 1
x3 = 0
Zopt = 13
Entonces, por unidad aumentada en la disponibilidad del recurso 1, el beneficio que se obtiene es: 13-8 = 5 unidades.
Definición- Se llama precio sombra, marginal o de equilibrio de la restricción (recurso) i al cambio que se produce
en el valor de la función del objetivo por unidad aumentada en la disponibilidad del recurso i.
Se prueba que los precios sombra de los recursos i = 1, …, m son la solución óptima yiopt del dual i = 1, …, m
En nuestro caso:
(y1opt,y2opt) = π
4 − 1⎞
⎟⎟ = (5,1)
⎝ −1 1 ⎠
=CBB-1 = (2,3)⎛⎜⎜
Ahora bien, para que los precios sombra no den información errónea, debemos calcular cuál es el campo de
variación de los bi en el que la solución sigue siendo óptima.
Lo calculamos, por ejemplo, para b1:
b1
b* =
3
Para que la tabla 3 siga siendo óptima, es preciso que B-1b* ≥ 0
4
-1
b1
4b1 – 3
4b1 – 3 ≥ 0 ⇔ b1 ≥ 3/4
-1
=
≥ 0⇔
B b* =
-b1 + 3 ≥ 0 ⇔ b1 ≤ 3
-1
1
3
-b1 + 3
⇒ Si b1 ∈ [3/4,3] la solución seguirá siendo óptima
Programación lineal avanzada - 28
⇒
x1 = 4b1 – 3
x2 = -b1 + 3
x3 = 0
Zopt = 2(4b1 – 3) + 3(-b1 + 3) = 5b1 + 3
13
Sea, por ejemplo b1 = 4, ahora B-1b =
≱0
-1
La tabla 3 queda:
base
x1
x2
x3
x4
x5
b
x1
x2
1
0
0
1
-1
2
4
-1
-1
1
13
-1
cj
0
0
-3
-5
-1
Esta tabla no es factible primal, pero sí factible dual ⇒ aplicamos el Método del Simplex Dual:
x2 deja la base y entra x4
base
x1
x2
x3
x4
x5
x1
x4
b
9
1
Zopt = 18
≥0
≥0
3. Modificaciones en la matriz de coeficientes de las restricciones.
3.1Adición de una nueva actividad (variable).
Supongamos que la compañía puede sacar a la venta un nuevo producto D, que requiere 1 unidad de trabajo y
1 unidad de material, con beneficio/unidad = 3.
1
Esto equivale a añadir una variable x6 y una columna en la tabla 1.
_
1
La tabla 3 seguirá siendo óptima si es C6 ≤ 0:
⎛1⎞
c6 = c6 − πP6 = 3 − (5,1)⎜⎜ ⎟⎟ = −3
⎝1⎠
_
Luego la solución de la tabla 3 sigue siendo óptima. Si C6 > 0 se aplicaría el simplex. .
3.2 Variaciones en las condiciones de las variables existentes.
3.2.1 Cambios correspondientes a una variable no básica.
Se hace como en 3.1
3.2.2 Cambios correspondientes a variables básicas.
Mejor resolver el problema de nuevo, porque al cambiar la matriz básica B se cambian todas las
columnas de la tabla.
3.3 Adición de nuevas restricciones.
Supongamos que se añade una restricción referente a los servicios administrativos, de tal modo que los
productos A, B y C requieren 1, 2 y 1 hora de servicios respectivamente, mientras las horas totales disponibles son 10.
x1 + 2x2 + x3 ≤ 10
Programación lineal avanzada - 29
Si la solución óptima de la tabla 3 satisface la restricción, sigue siendo óptima:
1•1 + 2•2 + 1•0 ≤ 10, cumple la restricción
Si la restricción fuese x1 + 2x2 + x3 ≤ 4:
1•1 + 2•2 + 1•0 ≰ 4
Añadimos la nueva restricción a la tabla 3:
CB
base
x1
x2
x3
x4
x5
x6
b
2
3
0
x1
x2
x6
1
0
1
0
1
2
-1
2
1
4
-1
0
-1
1
0
0
0
1
1
2
4
cj
0
0
-3
-5
-1
0
(3ªF – 1ªF - 2•(2ªF))
CB
base
x1
x2
x3
x4
x5
x6
b
x1
x2
x6
1
0
0
0
1
0
-1
2
-2
4
-1
-2
-1
1
-1
0
0
1
1
2
-1
cj
0
0
-3
-5
-1
0
x1
x2
x5
2
1
1
Zopt = 7
En la tabla 3, Zopt = 8 → ΔZopt = -1
Esto siempre es cierto: al añadir una restricción a un problema de programación lineal el nuevo valor de la
función del objetivo es igual o peor que el anterior.
Observaciones.
Tiempo de resolución de un p.p.l ≡ f(m3), siendo m el número de restricciones
A) Quitar restricciones inactivas o secundarias.
B) Resolver
C) Añadir y comprobar si las restricciones de A) son verificadas por la solución óptima.
Programación paramétrica.
1.
Costes (Beneficios) paramétricos
Z = [C + λC*] x
Ax = b
Programación lineal avanzada - 30
x≥0
C = (C1, C2, …, Cn)
λ ∈ℝ
C = (C1*, C2*, …, Cn*)
Primero se resuelve el problema para λ = 0. Sea B la base óptima:
_
_
_
Cj ≤ 0 (Maximizando)
Cj = Cj - CBPj
_
_
_
_ _
_
Cj(λ) = (Cj + λCj*) – (CB + λCB*)Pj = (Cj - CBPj) + λ (Cj* - CB* Pj) = Cj + λCj*
Programación lineal avanzada - 31
Ejemplo:
Max Z = (2 + λ)x1 + (3 - λ)x2 + (1 + λ)x3
1
/3x1 + 1/3x2 + 1/3x3 ≤ 1
1
/3x1 + 4/3x2 + 7/3x3 ≤ 3
xi ≥ 0
Cj*
Cj
1
2
-1
3
1
1
0
0
0
0
CB*
CB
base
x1
x2
x3
x4
x5
b
1
-1
2
3
x1
x2
1
0
0
1
-1
2
4
-1
-1
1
1
2
cj
0
0
-3
-5
-1
0
0
4
-5
2
cj
*
Z = 8 = CBb
Z * = −1 = C B* b
⎛ − 1⎞
⎟⎟ = 4
⎝2⎠
Por ejemplo, c3 = c3 − c B P3 = 1 − (1,−1)⎜⎜
*
*
*
Z(λ) = Z + λZ* = 8 - λ
_
C3(λ) = -3 + 4λ ≤ 0 ⇔ λ ≤ 3/4
_
C4(λ) = -5 -5λ ≤ 0 ⇔ λ ≥ -1
_
C5(λ) = -1 + 2λ ≤ 0 ⇔ λ ≤ 1/2
La solución sigue siendo óptima si λ ∈ [-1, 1/2].
Si λ > 1/2 ⇒ c5 (λ) > 0 (⇒ entra x5 y sale x2)
base
x1
x2
x3
x4
x5
b
x1
x5
1
0
1
1
1
2
3
-1
0
1
3
2
cj
0
1
-1
-6
0
Z=6
0
-2
0
-3
0
Z* = 3
cj
*
La solución es óptima si c2 (λ ), c3 (λ ), c4 (λ ) ≤ 0 → ocurre si λ ≥ 1/2
Programación lineal avanzada - 32
y Z = 6 + 3λ
Para λ < -1 c4 (λ ) > 0
base
(⇒ sale x1 y entra x4)
x1
x2
x3
x4
x5
x4
x2
1
0
1
-1/4
7
/4
1
0
-1/4
3
/4
1
cj
5
0
-17/4
0
-9/4
Z=
5
0
cj
/4
/4
1
/4
*
/4
11
/4
0
Z(λ) = 27/4 - 9/4λ
Solución óptima si c1 (λ ), c3 (λ ), c5 (λ ) ≤ 0
⇔ λ ≤ -1
Programación lineal avanzada - 33
3
/4
b
/4
/4
9
27
/4
Z* = -9/4
2.
Variación paramétrica del vector de recursos.
Z = Cx
Ax = b + αb*
x≥0
b=
b1
…
bm
b* =
b1*
…
bm*
α∈ℝ
Primero resolvemos para α = 0. Sea B la base óptima:
_
xB = b = B-1b
_
_ _
Para b + αb*, xB = b = B-1(b + αb*) = B-1b + αB-1b* = b + αb*
_
_
Si b + αb* ≥ 0 la base B seguirá siendo óptima.
Ejemplo:
Hagamos b* =
1
1+α
b + αb* =
-1
3-α
Resolver para α = 0:
base
x1
x2
x3
x4
x5
b
b*
x1
x2
1
0
0
1
-1
2
4
-1
-1
1
1
2
5
-2
cj
0
0
-3
-5
-1
Z = 8 = CBb
Z * = 4 = CBb *
_
b = B-1b =
4
-1
1
1
=
_
b* = B-1b =
-1
1
3
4
-1
1
5
=
-1
x1 = 1 + 5α
x2 = 2 - 2α
Zopt = 8 + 4α
2
1
-1
-2
≥ 0 ⇔ α ≥ - 1/5
≥0⇔α≤1
α ∈ [- 1/5,1]
Si α > 1 ⇒ x2 < 0 y la solución actual no es factible, pero sí factible dual. Usando el Método del Simplex Dual
obtenemos:
CB
base
x1
x2
x3
x4
x5
b
b*
2
0
x1
x4
1
0
4
-1
7
-2
0
1
3
-1
9
-2
-3
2
cj
0
-5
-13
0
-6
Z = 18
Z* = -6
Programación lineal avanzada - 34
x1 = 9 - 3α
x2 = -2 + 2α
Z = 18 -6α
≥ 0 si α ≤ 3
≥ 0 si α ≥ 1
α ∈ [1,3]
Si α > 3 ⇒ x1 < 0 y la solución actual no factible. Como en la fila de x1 no hay coeficientes negativos, el problema es
NO FACTIBLE.
Si α < - 1/5 ⇒ x1 < 0 ( y usamos Método del Simplex Dual: sale x1 y entra x5)
base
x1
x2
x3
x4
x5
b
b*
x5
x2
-1
1
0
1
1
1
-4
3
1
0
-1
3
-5
3
cj
-1
0
-2
-9
0
Z=9
Z* = 9
x2 = 3 + 3α
≥0
x5 = -1 - 5α
≥0
si -1 ≤ α < - 1/5
Z = 9 + 9α
Si α < -1 ⇒ x2 < 0 → problema NO FACTIBLE
Programación lineal avanzada - 35
Programación lineal avanzada - 36
Programación lineal avanzada - 37
Tema 7. Programación lineal entera.
Un p.p.l. entera es aquel en el que todas las variables de decisión (programación entera pura) o algunas de
ellas (programación entera mixta) toman exclusivamente valores enteros.
Una forma de tratar este problema es el redondeo (quedarse con la parte entera por arriba ó abajo teniendo
cuidado de que la solución que así se obtenga sea factible)
Algoritmo de ramificación y acotación (Branch and Bound Algorithm).
Maximizar Z
= 3x1+2x2
Sujeto a
x1 ≤ 2
x2 ≤ 2
x1+ x2 ≤ 3.5
x1,x2 ≥ 0 y enteros.
Soluciones enteras
Z=3x1+2x2
Z(0,0)=0
Z(0,1)=2
Z(0,2)=4
Z(1,0)=3
Z(1,1)=5
Z(1,2)=7
Z(2,0)=6
Z(2,1)=8 óptimo
Algoritmo.
P.entera, transporte y asignación 1
Primero resolvemos el problema olvidándonos de la restricción de variables enteras
(PL-1)
Región factible ABCDE
óptimo
x1 =2, x2=1.5 ZOptimo=9
Sabemos que añadir las restricciones de que las variables sean enteras no puede mejorar la función del objetivo.
Tenemos así que Z0=9 es una cota superior para el valor óptimo del problema inicial.
Creamos ahora 2 nuevos problemas
x2=1.5
x2≤1
x2≥2
P.entera, transporte y asignación 2
PL-2
Maximizar Z
= 3x1+2x2
x1≤ 2
x2≤ 2
x1+ x2 ≤ 3.5
x2≤ 1
x1,x2 ≥ 0
PL-3
Maximizar Z
= 3x1+2x2
x1≤ 2
x2≤ 2
x1+ x2 ≤ 3.5
x2≥ 2
x1,x2 ≥ 0
PL-2
P.entera, transporte y asignación 3
PL-3
Región factible = segmento AB
La solución óptima de PL-2 es
x1 =2,
x2=1 ZOptimo=8
Así tenemos una s.f. entera de PL-1 (Fijarse que cada solución entera
factible de PL-1 está contenida en PL-2 ó en PL-3). Aunque PL-2 pueda
contener otras soluciones enteras, sus valores de la función objetivo no
pueden ser más grandes que 8, ⇒ Z=8 es una cota inferior del valor máximo
de Z en el PL-1.
Luego 8≤ Zoptimo≤9
En PL-3 la solución óptima es
x1 =1.5, x2=2 ZOptimo=8.5
x1 no es factible (no es entero) para PL-1 pero Z=8.5>8, ⇒ hay que construir 2 nuevos problemas
PL-4
PL-3 + restricción x1≤ 1
PL-5
PL-3 + restricción x1≥ 2
P.entera, transporte y asignación 4
PL-5
No tiene región factible.
PL-4
Solución óptima entera:
x1 =1,
x2=2 ZOptimo=7
pero es peor que 8.
Por tanto la solución óptima es la de PL-2 x1 =2, x2=1 ZOptimo=8
El árbol obtenido es el siguiente:
P.entera, transporte y asignación 5
DETALLES GENERALES
· MIP (Mixed Integer Program)
Maximizar Z = CX
Sujeto a
AX = b
≥
0
X
Xj entera para j perteneciente a I = {índices de las variables enteras}
· Se resuelve el MIP sin condiciones enteras. A este problema le llamamos PL-1 con solución óptima Z1.
Supongamos que la solución óptima toma valores no enteros en alguna variable entera, y por lo tanto no es
solución del MIP. Sí es, en cambio, una cota superior del valor óptimo de Z en el MIP.
Se elige una variable entera Xj que dio no entera. Si Xj = βj, se construyen 2 nuevos problemas:
P.entera, transporte y asignación 6
PL-2:
Maximizar Z = CX
AX = b
Xj ≤ βjX≥0
PL3:
Maximizar Z = CX
AX = b
Xj≥ βj+
X≥0
· Para elegir la variable Xj en la que hacer la bifurcación hay las siguientes reglas:
1). A ojo o al azar.
2). Por prioridades, según...
· La variable representa una decisión importante en el problema.
· Su coste (o beneficio) es más grande que en las demás variables.
· Decisión según resolución anterior del problema.
· Como PL-2 y PL-3 son PL-1 con una nueva restricción añadida, podemos usar el MSD (Método del Simplex
Dual) para encontrar sus soluciones óptimas.
· Supongamos que las soluciones óptimas de PL-2 y de PL-3 siguen siendo fraccionarias. El siguiente paso
consiste en seleccionar PL-2 o PL-3 para hacer una nueva ramificación. Para ello:
a). Se elige aquel problema cuyo valor óptimo sea el mejor.
b). Se selecciona el problema resuelto más recientemente (Last-in-First-out rule, LIFO)
· Continuamos así la sucesión de ramificaciones y resolución de p.p.l hasta resolver uno que tenga solución
entera. El valor de la función objetivo en este caso será una cota inferior del valor óptimo del MIP original. En
este momento podemos dejar de considerar todos aquellos nodos cuyos valores de Z no sean mejores que la
cota inferior. Se dice que esos nodos han sido saturados.
· DEFINICIÓN: un nodo intermedio está explícita o implícitamente saturado siempre que se satisfaga una de
las siguientes condiciones:
1). La solución óptima del p.p.l correspondiente es entera.
2). El p.p.l correspondiente es no factible.
3). El valor óptimo de Z para el p.p.l correspondiente no es mejor que la cota inferior actual.
P.entera, transporte y asignación 7
· Del árbol mostrado en la figura superior:
· El Nodo 4 está saturado. Cualquier solución del problema MIP no puede ser mejor que esta.
· El Nodo 5 está saturado por ser no factible.
· Supongamos que Z6 < Z4, el Nodo 6 está saturado implícitamente.
· En el caso de que Z7 > Z4, habría que ramificar a partir del Nodo7.
· Notas
- La eficacia del método radica en la rapidez con que se saturen los nodos.
- Es importante mantener el número de variables enteras lo menor posible.
- Proporcionar cotas ajustadas superiores e inferiores de Zoptimo.
- Al contrario que un p.p.l general, la adición de nuevas restricciones a un MIP generalmente reducirá el
tiempo de computación, especialmente cuando las nuevas restricciones contengan variables enteras.
- A veces llega con que:
[(CotaSuperior Z - CotaInferior Z) / CotaSuperior Z] < [% pequeño del óptimo continuo]
P.entera, transporte y asignación 8
Tema 8: Problemas Especiales de Programación Lineal.
Problemas de Transporte.
Consideremos:
M almacenes con existencias a1, a2, …, aM
N mercados con demandas b1, b2, …, bN
Sea Cij ≡ coste por unidad enviada del almacén i al mercado j
i = 1…M
j = 1…N
Se trata de calcular la cantidad a enviar desde cada almacén hasta cada mercado minimizando el coste total
del transporte.
ALMACÉN
MERCADO
1
•
2
•
•
1
•
2
i
•
…
…
M
•
…
•
j
…
•
N
Sea xij = “nº de unidades o cantidad enviada desde el almacén i al mercado j”
M N
Función objetivo: Min Z = ∑ ∑ Cij xij
i=1 j=1
Sujeto a:
Las restricciones vienen dadas por las capacidades de los almacenes y las exigencias de los mercados.
1
•
i
•
…
xij
xi1
•
1
…
xi1 + xi2 + … + xij + … + xiN
cantidad total
enviada desde el
almacén i-ésimo
•
j
≤ ai
M
•
…
∀i=1,2,…,M
existencia
en el almacén
i-ésimo
P.entera, transporte y asignación 9
xiN
…
•
N
1
•
i
•
…
x1j
xij
•
1
…
•
j
x1j + x2j + … + xij + … + xMj
xMj
…
•
N
∀j=1,2,…,N
≥bj
cantidad total
que recibe el
mercado j
M
•
…
cantidad
demandada por
el mercado j
M N
Queda Min Z = ∑ ∑ Cij xij
i=1 j=1
N
sujeto a: ∑ xij ≤ ai
i=1…M
j=1
M
∑ xij ≥ bj
j=1…N
i=1
xij ≥ 0
∀i,j
M+N restricciones
MxN variables
Es evidente que el problema es factible (tiene solución) si:
M
N
i=1
j=1
∑ ai ≥ ∑ bj
almacenado demandado
M
N
i=1
j=1
Si ∑ ai = ∑ bj se tiene un problema de transporte estándar:
M N
Min Z = ∑ ∑ Cij xij
i=1 j=1
sujeto a:
N
∑ xij = ai
j=1
M
∑ xij = bj
i=1
i=1…M
j=1…N
xij ≥ 0 ∀i,j
Desarrollaremos técnicas de resolución para problemas de este tipo, por ello, si no se cumple que:
∑ ai = ∑ bj
P.entera, transporte y asignación 10
por ejemplo si:
M
N
i=1
j=1
∑ ai > ∑ bj
(I)
(La cantidad enviada es mayor que la cantidad demandada. Habrá una cierta cantidad que no se enviará. Se crea
entonces un mercado ficticio, llamado N+1, con demanda precisamente igual a esa cantidad).
1
•
2
•
…
N
•
•
•
…
•
•
b1
b2
bN
bN+1
mercado
ficticio
El problema se reescribe:
xi,N+1
M
N
i=1
j=1
= ∑ ai - ∑ bj con Ci,N+1 = 0 ∀i=1…N
exceso de mercancía
i=1,…,M
lo que sobra en el almacén i
M N+1
Min Z = ∑ ∑ Cij xij
i=1 j=1
sujeto a:
N+1
∑ xij = ai
i=1…M
j=1
M
∑ xij = bj
i=1
∀i,j
xij ≥ 0
Si:
j=1…N+1
M
N
i=1
j=1
∑ ai < ∑ bj
( II )
(La cantidad enviada es menor que la demandada. No se cumplirán todas las demandas y habrá una cierta pérdida en
algún mercado. Se crea entonces un almacén ficticio, llamado M+1, con la cantidad que falta).
P.entera, transporte y asignación 11
almacén
ficticio
a1
a2
•
•
•
•
b1
b2
aM
aM+1
…
•
•
…
•
N
M
= ∑ bj - ∑ ai con CM+1,j = 0 y xM+1,j es la
j=1
i=1
la pérdida en el mercado j
bN
El problema se reescribe:
M+1 N
Min Z = ∑ ∑ Cij xij
i=1 j=1
sujeto a:
N
∑ xij = ai
i=1…M+1
j=1
M+1
∑ xij = bj
j=1…N
i=1
xij ≥ 0
∀i,j
El problema de Transporte estándar puede expresarse en forma de tabla con los datos (ai, bj, Cij).
1
Almacenes
1
x11
2
x21
2
x12
C11
C12
x22
C21
C22
Mercados
3
x13
C13
x23
C23
…
N
Existencias
x1N
C1N
x12N
C2N
…
i
Demandas
a2
…
xi1
xi2
xi1
Ci1
xiN
Ci2
Ci3
CiN
…
M
a1
ai
…
xM1
xM2
CM1
b1
xMN
xM3
CM2
b2
CM3
b3
CMN
…
Sumas xij por filas = existencias ⇒ RESTRICCIONES DE ALMACENAJE
Sumas xij por columnas = demandas ⇒ RESTRICCIONES DE DEMANDAS
P.entera, transporte y asignación 12
bN
aM
Obtención de una solución factible básica inicial:
El problema de transporte tiene M+N restricciones ⇒ una solución factible básica necesita, en principio,
M+N variables básicas.
M N
M
i=1 j=1
i=1
Ahora bien, dado que ∑ ∑ xij = ∑ ai
M
(sumamos todas las ecuaciones ∑ xij = ai)
j=1
M
∀j=1…N
∑ xij = bj
i=1
N M
N
j=1 i=1
j=1
∑ ∑ xij = ∑ bj
M
= ∑ ai
i=1
Sistema de ecuaciones / suma de las M primeras filas = suma de las N restantes
⇒ 1 ecuación es linealmente dependiente de las demás ⇒ El problema de transporte estándar tiene M+N-1
restricciones linealmente independientes ⇒ Una solución factible básica necesita M+N-1 variables básicas.
Hay diferentes métodos para resolver la solución factible básica inicial, nosotros sólo vemos 2.
(1)
Obtención de una
solución
factible básica inicial
(2)
Comprobar si es
óptima
NO
SI
FIN
Se mejora
obteniendo
otra solución
factible básica
(3)
(1) Hay varios métodos: esquina noroeste, coste mínimo, de Vogel, de aproximación de Russell…
(2) Método U-V
(3) Algoritmo de Steeping-Stone
Método de la esquina noroeste.
Consiste en elegir como variables básicas (>0) aquellas que ocupen la esquina noroeste en la tabla de
transporte estándar.
M1
M2
M3
M4
P.entera, transporte y asignación 13
capacidades
A1
2
2
2
1
3
A2
10
8
5
4
7
A3
7
6
6
8
5
15
demandas
4
3
4
4
‖
b1
‖
b2
‖
b3
‖
b4
+
+
+
= a1
+
= a2
+
= a3
Elegimos x11 = min{3,4} = 3
A1
A2
A3
M1
3
M2
0
M3
0
M4
0
4-3=1
3
4
4
M2
0
M3
0
M4
0
3
4
4
M2
0
3
0
0
M3
0
M4
0
4
4
M2
0
3
0
0
M3
0
3
M4
0
0
4-3=1
4
M2
0
3
0
M3
0
3
1
M4
0
0
4
3-3=0
7
5
Elegimos x21 = min{a2, b1’} = min{7,1} = 1
b1’ es el b1 después de restarle lo que enviamos
A1
A2
A3
M1
3
1
0
1-1=0
0
7-1=6
5
Elegimos x22 = min{a2’, b2} = min{6,3} = 3
A1
A2
A3
M1
3
1
0
0
0
6-3=3
5
Elegimos x23 = min{b2’, a3} = min{3,4} = 3
A1
A2
A3
M1
3
1
0
0
0
0
5
Elegimos x33 = min{a3’, b3} = min{1,5} = 1
A1
A2
A3
M1
3
1
0
P.entera, transporte y asignación 14
0
0
5-1=4
0
0
0
4
M+N-1 = 4+3-1 = 6 variables básicas > 0.
Z = 3•2 + 1•10 + 3•8 + 3•5 + 1•6 + 4•8 = 93
Método del coste mínimo.
Consiste en ir eligiendo como variables básicas (>0) aquellas que tengan menor coste.
A1
A2
A3
M1
2
10
7
4
Menor coste C14 = 1
A1
A2
A3
M2
2
8
6
3
A1
A2
A3
A1
A2
A3
M4
3
M1
0
M2
0
M3
0
4
3
4
3
7
5
M2
0
1
M3
0
4
3
4
M1
0
M2
0
M3
0
4
0
4
3
M1
0
M2
0
0
3
M1
0
2
2
4
0
7
5
x24 = min{7,1} = 1
M1
0
4
A1
A2
A3
M4
1
4
8
4
x14 = min{3,4} = 3
Menor coste de celdas sin ocupar C24 = 4
A1
A2
A3
M3
2
5
6
4
3
4
0
M2
0
0
3
0
M4
3
1
0
1
0
6
5
0
M4
3
1
0
0
M3
0
4
0
0
M4
3
1
0
0
M3
0
4
0
0
M4
3
1
0
0
P.entera, transporte y asignación 15
0
7
0
6
2
5
0
2
5
2
0
2
2
Z = 79
Método de Steeping-Stone (Mejora de la solución factible básica inicial).
Primero es preciso saber si la solución factible básica inicial es óptima o no. En el ejemplo anterior:
M1
M2
0
A1
0
2
4
5
3
0
7
4
1
1
8
2
A3
2
0
10
M4
3
2
2
A2
M3
0
4
0
6
3
6
4
8
4
3
7
5
Actualmente x11 = 0, si hacemos x11 = 1
M1
+1
-1
A1
A2
M4
-1
+1
_
C11 = C11•(cambio en x11) + C14•(cambio en x14) + C21•(cambio en x21) + C24•(cambio en x24) = 2•(1) + 1•(-1) + 10•(-1)
+ 4•(+1) = -5
beneficio
relativo
de x11
Se pueden calcular todos los beneficios relativos de las variables no básicas simultáneamente, mediante el
método U-V o MODI (Modified Distribution Method).
Método U-V.
Se calculan números:
Ui
∀i=1…M
∀j=1…N
tales que: Cij = Ui + Vj para cada variable básica
Vj
_
Se tendrá que Cij = Cij - (Ui + Vj) para cada variable no básica.
M1
A3
M3
M4
•
A1
A2
M2
2
2
•
2
•
10
•
1
•
8
5
4
6
6
8
•
7
Hacemos
U1 = 0 → V4 = 1→ U2 = 3 → V1 =7 y V3 = 2
_
C11 - (U1 + V1) = 2 – (0+7) = -5
_
A1
M4
U1 + V4 = 1
U2 + V1 = 10
U2 + V3 = 5
U2 + V4 = 4
U3 + V1 = 7
U3 + V2 = 6
U3 = 0 → V2 = 6
P.entera, transporte y asignación 16
C12 = 2 - (0 + 6) = -4
_
C13 = 2 – (0 + 2) = 0
_
C22 = 8 – (3 + 6) = -1
_
C33 = 6 – (0 + 2) = 4
_
C34 = 8 – (0 + 1) = 7
V1 = 7
V2 = 6
V3 = 2
V4 = 1
•
U1 = 0
2
2
•
U2 = 3
•
10
•
U3 = 0
2
1
•
8
5
4
6
6
8
•
7
Las casillas sin marca • serán las variables no básicas.
2-7-0 = -5
2-6-0 = -4
V1 = 7
V2 = 6
-5
U1 = 0
-4
2
0
-1
U3 = 0
0
2
0
10
8
0
V4 = 1
0
2
U2 = 3
V3 = 2
0
5
4
7
1
0
6
4
7
6
Menor beneficio relativo negativo -5 ⇒ x11 entra en la base:
+θ
2-θ
2
4
3
3
4
3-θ
1+θ
4
4
Máximo valor para θ = 2, porque
sino en x21 pasaría a ser negativo
y no puede ser.
3
7
5
(Steeping-Stone)
Nueva solución factible básica:
2
0
2
4
3
1
3
Z = 69
P.entera, transporte y asignación 17
8
Miramos si es óptima (método U-V)
V1 = 2
V2 = 1
1
×
U1 = 0
4
10
×
U3 = 5
7
V4 = 1
0
2
2
5
U2 = 3
V3 = 2
8
2
×
5
-1
×
×
1
4
2
6
6
×
8
Solución no óptima; entra x33 en la base:
2+θ
2-θ
3
4-θ
+θ
3
3
1
Máximo valor posible para θ = 1
1-θ
3+θ
3
1
4
Z = 68
y se comprueba que es la óptima.
Problemas de Asignación.
Formulación general de un problema de asignación estándar:
Se tienen N máquinas y N trabajos diferentes. Cada máquina puede realizar un único trabajo y cada trabajo
sólo puede efectuarlo una máquina. Se supone que el coste de realización de cada trabajo por cada máquina varía. El
problema consiste en resolver qué trabajo realiza cada máquina de manera que el coste total de realización de los N
trabajos sea mínimo.
M1
M2
…
MN
N máquinas
T1
T2
…
TN
N trabajos
Mij ≡ la máquina i realiza el trabajo j con coste Cij, i = 1…N, j=1,…N
Si la máquina i no puede realizar el trabajo j se escribirá Cij = M con M → ∞
Una manera intuitiva de resolver este problema es enumerar todas las posibilidades y calcular Z en ellas.
¿Cuántas asignaciones posibles hay?
Ej//
Para 2 máquinas y 2 trabajos:
T1
T2
M1
C11
C12
P.entera, transporte y asignación 18
C21
C22
1ª asignación: M1 → T1
M2 → T1
M2 → T1
Coste = C11 + C22
Coste = C21 + C12
M2
2ª asignación: M1 → T2
Formulamos el problema de asignación como un problema de programación lineal.
Sea xij =
1
si la máquina i realiza el trabajo j
0
no
Dado que cada máquina realiza un único trabajo:
N
∑ xij = 1 i = 1…N
j=1
suma de trabajos que realiza la máquina i
Dado que cada trabajo se le asigna a una única máquina:
N
∑ xij = 1 j = 1…N
i=1
cantidad de máquinas que realizan el trabajo j
Función objetivo:
M1
M2
…
MN
N N
Min
∑ ∑ Cij xij
T1
C11
C21
T2
C12
C22
CN1
1
CN2
1
i=1 j=1
…
TN
C1N
C2N
CNN
1
1
1
Tabla de costes
de asignación
estándar
1
En general en un problema de transporte necesitaríamos 2N-1 variables básicas > 0, cuando en los problemas
de asignación sólo habrá N variables > 0. No usaremos ni transporte ni simplex porque trabajaríamos con soluciones
degeneradas.
Formulación general de un problema de asignación no estándar:
a) Hay más máquinas que trabajos → creamos “trabajos” ficticios con coste de realización cero.
b) Hay más trabajos que máquinas → creamos “máquinas” ficticias con coste de realización trabajo/máquina
ficticia = 0.
Método o Algoritmo Húngaro (König).
El principio básico radica en que la asignación óptima no cambia si se suma o se resta una constante a una
fila o columna de la tabla de costes de asignación estándar.
P.entera, transporte y asignación 19
El método consiste en restar una cantidad a las filas y/o columnas de manera que se encuentre una asignación
óptima a simple vista. Iniciamos el algoritmo examinando cada fila (columna) de la matriz de costes para identificar el
elemento más pequeño. Esa cantidad se le resta a todos los elementos de dicha fila (columna). Esto origina una tabla
que contiene al menos un cero en cada fila (columna).
Ahora se intenta realizar una asignación factible usando las celdas con coste cero. Si es posible, se tendrá una
asignación óptima.
Ejemplo:
M1
M2
M3
M4
T1
10
3
2
4
T2
9
4
1
3
T3
8
5
1
5
T4
7
6
2
6
T2
2
1
0
0
T3
1
2
0
2
→
→
→
→
mínimo = 7
mínimo = 3
mínimo = 1
mínimo = 3
A cada xij le restamos el mínimo de su fila:
T1
3
0
1
1
M1
M2
M3
M4
T4
0
3
1
3
Utilizando los ceros intentamos realizar una asignación factible:
M1 →
M2 →
M3 →
→
M4 →
T4
T1
T2
T3
T2
M3 →
M4 →
T3
T2
y ésta es la asignación óptima.
Ejemplo:
4 máquinas, 4 trabajos
M1
M2
M3
M4
T1
10
5
5
2
T2
9
8
4
3
T3
7
7
6
4
T4
8
7
5
5
→
→
→
→
mínimo = 7
mínimo = 5
mínimo = 4
mínimo = 2
Cogemos el mínimo por filas y se lo restamos:
T1
T2
T3
T4
M1
3
2
0
1
M4
M2 → T1
M2
0
3
2
2
→ T1
M3
1
0
2
1
M4
0
1
2
3
Como dos máquinas estarían realizando el mismo trabajo no sería una asignación óptima. Cogemos el
mínimo por columnas:
M1 → T3
T1
T2
T3
T4
M1
3
2
0
0
M2
0
3
2
1
M3
1
0
2
0
P.entera, transporte y asignación 20
M4
M2 → T1
M3 → T2
→ T4
M4 → T1
0
1
2
2
→ T4
Lo que se hace ahora es trazar líneas de modo que se cubran todas las celdas con ceros. El teorema de König
establece que el número mínimo de líneas necesario es igual al número máximo de trabajos que pueden asignarse
usando dichas celdas.
M1
M2
M3
M4
T1
3
0
1
0
T2
2
3
0
1
T3
0
2
2
2
T4
0
1
0
2
Ahora se selecciona el elemento más pequeño no cubierto por las líneas, que en este ejemplo es el 1. Se resta
este número de todos los elementos no cubiertos, y se le suma a los cubiertos que sean intersección de dos líneas.
Es equivalente a
restar 1 de la 2ª y 4ª fila y sumar 1 a la
T1
T2
T3
T4
1ª columna, por lo que la asignación
M1
4
2
0
0
óptima no varía.
M2
0
2
1
0
M3
2
0
2
0
M4
0
0
1
1
M1 →
→
T3
T4
M2 →
→
T1
T4
M3 →
→
T2
T4
M4 →
→
T1
T2
Las asignaciones serían:
M1 →
M2 →
M3 →
M4 →
T3
T1
T4
T2
ó
M1 →
M2 →
M3 →
M4 →
T3
T4
T2
T1
Zopt = 20
P.entera, transporte y asignación 21

Documentos relacionados