Documente Academic
Documente Profesional
Documente Cultură
INVESTIGACIÓN
OPERATIVA
Profesor: Manuel Muñoz Márquez
Curso 2010 -11
Autores:
Juan Carlos Páez Rodríguez
Rafael Alberto Oliva Orbello
Ángel Rodríguez Poch
Versión: 12/09/11
Licencia
Se concede permiso para copiar, distribuir y/o modificar este documento bajo
los términos de la Licencia de Documentación Libre de GNU, Versión 1.2 o cualquier
otra versión posterior publicada por la Free Software Foundation.
Permission is granted to copy, distribute and/or modify this document under the
terms of the GNU Free Documentation License, Version 1.2 or any later version
published by the Free Software Foundation.
ÍNDICE
Tema 1: Introducción A La Investigación Operativa Pag.5
Tema 2: Programación Lineal Pag.7
2.1- Formulación De Problemas De Programación Lineal. Pag.7
2.1.1- Cambio A Formato Estándar.
2.1.2- Hipótesis Que Debe Cumplir Un Problema Para Que Se Pueda
Planear Como Un PPL.
2.1.3- Puntos Factibles.
2.2- Resolución Gráfica De Problemas. Pag.11
2.2.1- Tipos De Problemas Que Se Pueden Presentar En Función De Su
Solución.
2.2.2- ¿Cómo Son Las Soluciones?
2.2.3- Geometría De Los Conjuntos Convexos.
2.3- Método Simplex. Pag.25
2.3.1- Conceptos Previos.
2.3.2- Método De Resolución Del Método Simplex.
2.4- Método Simplex En Formato Tabla. Pag.27
2.4.1- Metodología Para El Método Simplex.
2.4.2- Test De Optimalidad.
2.4.3- Cambio De Base.
2.5- Métodos De Generación De Una Solución Básica Factible Inicial. Pag.43
2.5.1- Método De Las Dos Fases.
2.5.2- Método De La “M” Grande.
2.5.3- Soluciones Múltiples.
2.5.4- Degeneración Y Ciclado.
2.6- Dualidad. Pag.57
2.6.2- Teorema De La Dualidad Débil.
2.6.3- Teorema De La Dualidad Fuerte.
2.6.4- Lectura de la solución dual en la tabla óptima del problema primal.
2.6.5- Interpretación Económica De Las Variables Duales.
2.6.6- Condiciones De Holgura Complementaria.
2.7- Método Simplex Dual. Pag.70
2.7.1- Método De La Restricción Artificial.
2.8- Sensibilidad. Pag.84
2.8.1- Análisis de Sensibilidad en el Vector de Costes.
2.8.2- Análisis de Sensibilidad en el Vector de Recursos.
2.8.3- Adición de Variables.
2.8.4- Adición de Restricciones.
2.8.5- Análisis Paramétrico de la Sensibilidad.
2.8.5.1- Vector De Costos.
2.8.5.2- Vector Del Lado Derecho.
2.8.6- Análisis De Tolerancia.
Pag.99
Tema 3: Programación Lineal Entera
3.1- Problemas De Asignación Y Transporte. Pag.99
3.1.1- Formato Tabla Para Problemas De Transporte.
3.2- Métodos Generales De Resolución Pag.104
3.2.1- Métodos De Generación De Una Solución Básica Factible.
3.2.1.1- Método De La Esquina Noroeste
3.2.1.2- Método De Vogel
3.2.2- Condiciones De Optimalidad Para Un Problema De Transporte.
3.2.3- Método De Transporte.
3.2.3- Problemas De Transbordo.
3.2.4- Problemas De Asignación.
3.2.4.1.- Algoritmo Húngaro Para Problemas De Asignación.
3.2.5- Algoritmo General Para Problemas De Programación Lineal Entera.
ÍNDICE DE PROBLEMAS
Número. Tema Página
2.1.g Lista 2010-2011 Resolución gráfica Pág. 15
9.69 Lista 2010-2011 Método Simplex Pág. 36
3.1.b Lista 2010-2011 Método Simplex Pág. 38
2.1.c Lista 2010-2011 Método Simplex Pág. 41
9.2.2 Lista 2010-2011 Método de la “M Grande” Pág. 49
9.6.2 Lista 2010-2011 Método de la “M Grande” Pág. 51
4.2.a. Lista 2010-2011 Método Simplex-Dual Pág. 72
4.2.b. Lista 2010-2011 Método Simplex-Dual Pág. 74
4.2.c. Lista 2010-2011 Método Simplex-Dual y restricción artificial Pág. 78
5.6. Lista 2010-2011 Método Simplex-Dual y análisis sensibilidad Pág. 81
6.1. Lista 2010-2011 Transbordo - Método de Vogel Pág. 138
6.2. Lista 2010-2011 Transporte - Método de Vogel Pág. 151
8.5.4. Lista 2010-2011 Transporte - Método de Vogel – Algoritmo Húngaro Pág. 158
Exámenes resueltos
Nº2 Febrero-2011 Método de la “M Grande” y análisis sensibilidad Pág. 170
Nº1 Ordenador Febrero-2011 Método Simplex Pág. 187
Nº2 Ordenador Febrero-2011 Transporte Pág. 190
Nº1 Marzo-2011 Método de la “M Grande” y análisis sensibilidad Pág. 201
Nº2 Marzo-2011 Transbordo Pág. 210
Nº1 Junio-2011 Método Simplex y Sensibilidad Pág. 213
Nº2 Junio-2011 Asignación. Pág. 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 1 – Introducción a la Investigación Operativa.
En el libro F.Hillier y G.Lieberman se define la I.O. como “la ciencia que trata
de la toma de decisiones y el modelado de sistemas tanto determinísticos como
probabilísticos originados en la vida real”.
3.- Validación: Una vez obtenida una solución habrá que cuestionar si ésta es
razonable o no. En esta etapa el Decisor puede tener en cuenta algunos aspectos que no
hayan sido tenido en cuenta en el modelo y que no son cuantificables. Si no resulta
viable se regresaría a la fase 1.
Página 5 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 1 – Introducción a la Investigación Operativa.
Página 6 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
( ) ( ) ( ) ( )
Siendo:
X n
C n
A m x n
B m
Sujeto a condiciones: AX = B
X 0 con B 0
Siendo:
a11x1 + a12x2 +...+ a1nxn b1 < 0 → -a11x1 -a12x2 - ...- a1nxn -(b1)
PASO 2:
a11x1 + a12x2 +...+ a1nxn b1 → a11x1 + a12x2 + ...+ a1nxn + s1 = b1, siendo s1 0
a11x1 + a12x2 +...+ a1nxn b1 → a11x1 + a12x2 + ...+ a1nxn - s1 = b1, siendo s1 0
PASO 3:
PASO 4:
Página 8 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
x1 - x2 + 4x3 + s1 =17, s1 0
La 3ª restricción es del tipo “ “ pero como queremos una restricción del tipo
“=”; añadimos una variable de exceso en el miembro izquierdo (restando):
x1 - x2 + x3 + 4x4 + s4 = 3, s4 0
Min: ̅̅̅
S.a: ̅̅̅
̅̅̅
̅̅̅
̅̅̅
̅̅̅
Página 9 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
Página 10 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
En primer lugar representamos las variables en juego, que en nuestro caso será:
Nuestro objetivo es tratar de maximizar el beneficio neto. Según los datos del
problema:
s+t≤80 →s+t=80
Para dibujar la línea calculamos dos puntos, por ejemplo s=0 y t=0
Para verificar con cuál de los dos lados nos quedamos sustituimos el punto por
ejemplo (0,0). s+t≤80→0+0≤80 → 0≤80 como la desigualdad es correcta, el punto (0,0)
pertenece al semiplano.
Página 11 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
2s+t≤100→ 2s+t=100
Para dibujar la línea calculamos dos puntos, por ejemplo s=0 y t=0
Para verificar con cuál de los dos lados nos quedamos sustituimos el punto por
ejemplo (0,0). 2s+t≤100→0+0≤100 → 0≤100 como la desigualdad es correcta, el punto
(0,0) pertenece al semiplano.
Página 12 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
2s+t=100
s+t=80
s=80-t →2s+t=100 →2*(80-t)+t=100
→160-2t+t=100 →160-100=2t-t→t=60→s=20 (20,60)
Página 13 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
Para Z=60→ 3s+2t=60 Calculamos dos puntos de la recta, por ejemplo s=0 y t=0
Variando el valor de Z iremos variando las rectas, pero todas ellas paralelas. El
punto que maximiza la función es aquella línea que pasa por (20,60)
Página 14 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
s*=20 ud.
t*=60ud.
Z*=180 (Z=3s+2t→Z=3x20+2x60=180)
max -4x1 + x2
s.a 2x1 + x2 ≥ 2
x1- 3x2≤15
x1 + 4x2 ≥ 8
x ≥0
SOLUCIÓN:
En primer lugar plasmamos las tres ecuaciones en sus gráficas. En realidad las
ecuaciones definen un semiplano, pero para facilitar su trazado trazaremos la línea de
referencia y después averiguaremos si el plano a seleccionar es el que está por debajo de
esa línea o por encima. Para ello basta con sustituir algún punto de esa zona en la
ecuación.
2x1 + x2 ≥ 2 → 2x1 + x2 = 2
Para dibujar la línea calculamos dos puntos, por ejemplo x1=0 y x2=0
2x1 + x2 = 2→para x2=0 →2∙ x1+ 0=2 → x1=2/2=1→ luego el punto es (x1,x2)→(1,0)
Para verificar con cuál de los dos lados nos quedamos sustituimos el punto por
ejemplo (0,0). 2x1 + x2 ≥ 2 →2∙0+0 ≥ 2→ 0≥2 como la desigualdad NO es correcta, el
punto (0,0) NO pertenece al semiplano; seleccionamos la zona opuesta:
Página 15 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
Para dibujar la línea calculamos dos puntos, por ejemplo x1=0 y x2=0
x1- 3x2 = 15→para x2=0 →x1 - 3∙0=15 → x1=15→ luego el punto es (x1,x2)→(15,0)
Para verificar con cuál de los dos lados nos quedamos sustituimos el punto por
ejemplo (0,0). x1- 3x2 ≤ 15 →0-3∙0≤ 15→ 0≥15 como la desigualdad es correcta, el
punto (0,0) pertenece al semiplano:
Página 16 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
x1 + 4x2 ≥ 8 → x1 + 4x2 = 8
Para dibujar la línea calculamos dos puntos, por ejemplo x1=0 y x2=0
Para verificar con cuál de los dos lados nos quedamos sustituimos el punto por
ejemplo (0,0). x1 + 4x2 ≥ 8 →0+4∙0≥ 8→ 0≥8 como la desigualdad NO es correcta, el
punto (0,0) NO pertenece al semiplano, seleccionamos el semiplano contrario:
El conjunto formado por todos los puntos factibles, representados por , se denomina
Conjunto Factible o Región Factible.
Página 17 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
Página 18 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
La función objetivo (Z) es Z= -4x1 + x2. Podemos igualar esta función a un valor
arbitrario, por ejemplo el 4 que es divisible entre 4 y 1 para que obtengamos números
enteros y podremos obtener una línea tal como:
Para Z=4→ -4x1 + x2=4 Calculamos dos puntos de la recta, por ejemplo x1=0 y x2=0
Variando el valor de Z iremos moviendo las rectas, pero todas ellas paralelas.
Aquella que toque a la región factible y nos de un valor de Z mayor será la solución
óptima:
Página 19 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
Página 20 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
arista ni uno de los extremos de ésta. De aquí se concluye que los problemas con
solución óptima finita o tienen solución única o tienen infinitas soluciones, pero nunca
2, 3, 4....
Restricciones Activas: Son aquellas a las que pertenecen el punto factible (en
el caso del ejemplo las restricciones s + t 80, 2s + t 100 son restricciones activas). Si
se eliminaran, modifican la solución
(circunferencia)
n
Definición alternativa: Un conjunto S se dice Conjunto Convexo si
x,y S se tiene [x,y] S, donde S es el segmento de extremos x e y (un conjunto es
convexo si todos los puntos contenidos en el segmento, que une los puntos x e y
también pertenece al conjunto.
→ [x,y] Si = S (S es convexo)
iI
Página 22 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
Sea [0,1] → 1 [x11+ (1-) x12 ] + ...+ n [xn1+ (1-) xn2 ] = + (1-) =
DIRECCIONES DE
ILIMITACIÓN DIRECCIONES DE
ILIMITACIÓN
Página 23 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
DIRECCIONES DE
ILIMITACIÓN EXTREMA
NO TIENE PUNTOS
EXTREMOS
PUNTOS
SEMIPLANO
EXTREMOS ABIERTO, NO
TIENE PUNTOS
EXTREMOS
PUNTOS
EXTREMOS
PUNTOS
EXTREMOS
Página 24 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
Para ello tenemos que construir una matriz Am*n , donde n es el número de
incógnitas y m el número de ecuaciones:
Estas dos opciones o bien
n < m: Sistema incompatible o sistema compatible determinado tienen solución única o bien
no tienen solución, por lo que
n = m: Sistema compatible determinado no interesan para PPL.
1.- Si existe un punto factible, existe una solución básica factible y por tanto
un punto extremo.
2.- Si existe solución óptima, entonces existe una solución básica factible
óptima y por tanto un punto extremo.
1.- Formar todas las posibles bases y calcular las soluciones de los
respectivos sistemas de ecuaciones, o calcular todos los puntos extremos y quedarme
con los factibles.
Página 25 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
( )
Este método no es muy viable porque supone una gran cantidad de tiempo. El
método SIMPLEX no evalúa todas las posibles soluciones, elimina grandes grupos
mediante condiciones, con lo que ahorra tiempo y cálculos.
Página 26 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
Max 3s + 2t
Sujeto a s + t ≤ 80
2s + t ≤ 100
s ≤ 40
s, t ≥ 0
Paso 1: poner el problema en formato estándar, por lo que el lado derecho tiene
que ser positivo, las restricciones tienen que ser igualdades y las variables tienen que ser
≥ 0:
Max 3s + 2t
Sujeto a s + t + s1 = 80
2s + t + s2 = 100
s + s3 = 40
s, t, s1, s2, s3 ≥ 0
s+ t+ s1+ =80
2s+ t+ s2 =100
s+ s3 =40
-3s2+ -2t+ Z =0
s t s1 s2 s3 z
s1 1 1 1 0 0 0 80
s2 2 1 0 1 0 0 100
s3 1 0 0 0 1 0 40
-3 -2 0 0 0 1 0
Primera iteración:
Paso 3: Tengo que buscar soluciones básicas factibles, por lo que tengo que
considerar 3 ecuaciones con 3 variables. s1, s2, s3 son soluciones básicas, el resto se
consideran no básicas y por tanto igualadas a cero, el sistema de ecuaciones resultaría:
s1 = 80
s2 = 100
s3 = 40
Por eso las coloco a la izquierda de la tabla. s y t no son soluciones básicas, pero
nos interesa que sí lo sean. Si nos fijamos en la última fila y hacemos s y t = 0, tenemos
que z = 0, por lo que no estamos ante una solución de acuerdo con el problema.
Página 27 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
Debemos hacer que s y t entren a formar parte de las variables básicas (columna de la
izquierda).
-3s + z = 0 z = 3s
-2t + z = 0 z = 2t
s + s1 = 80 s1 = 80 – s ≥0 s ≤ 80 / 1
2s + s2 = 100 s2 = 100 – 2s ≥ 0 s ≤ 100 / 2
s + s3 = 40 s3 = 40 – s ≥0 s ≤ 40 / 1
s t s1 s2 s3 z
s1 1 1 1 0 0 0 80
s2 2 1 0 1 0 0 100
s3 1 0 0 0 1 0 40
-3 -2 0 0 0 1 0
Paso 4: se hacen los cambios necesarios para que nuestras variables sean básicas.
Para ello se pivota sobre el coeficiente de (s, s 3), buscamos hacer 0 los coeficientes
tecnológicos de la columna de s.
Página 28 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
s t s1 s2 s3 z
s1 0 1 1 0 -1 0 40
s2 0 1 0 1 -2 0 20
s 1 0 0 0 1 0 40
0 -2 0 0 3 1 120
Segunda iteración:
s = 40
t=0
z = 120.
Esta tabla no es la óptima, por lo que tenemos que volver a cambiar de variable.
Repetimos el proceso desde el principio. Veamos las alternativas:
Esta ecuación nos interesa, ya que hace que aumente la función objetivo.
Esta variable entró en la etapa anterior, por lo que ahora no puede entrar.
Además, hace que disminuya la función objetivo, y nuestro problema es de maximizar.
t + s1 = 40 s1 = 40 – t ≥0 t ≤ 40 / 1
t + s2 = 20 s2 = 20 – t ≥0 t ≤ 20 / 1
t + 0 = 40 0 = 40 – t ≥0 t ≤ 40 / 0 t ≤ ∞
Todas las condiciones se cumplen para t ≤ 20. Pivotamos sobre este elemento,
ya que es el más pequeño (nuestro problema es de maximización).
Página 29 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
s t s1 s2 s3 z
s1 0 1 1 0 -1 0 40
s2 0 1 0 1 -2 0 20
s 1 0 0 0 1 0 40
0 -2 0 0 3 1 120
Ahora se hacen los cambios necesarios para que nuestras variables sean básicas.
Para ello se pivota sobre el coeficiente de (t, s2), buscamos hacer 0 los coeficientes
tecnológicos de la columna de t.
s t s1 s2 s3 z
s1 0 0 1 -1 1 0 20
t 0 1 0 1 -2 0 20
s 1 0 0 0 1 0 40
0 0 0 2 -1 1 160
Tercera iteración:
s = 40
t = 20
z = 160
Esta tabla no es la óptima (para que sea óptima en maximización, deben ser ≥ 0
todos los coeficientes de la última fila), por lo que tenemos que volver a cambiar de
variable. Repetimos el proceso desde el principio. Veamos las alternativas:
Esta ecuación no nos interesa, ya que hace que disminuya la función objetivo.
Esta es la variable que nos interesa, hace que aumente la función objetivo, y
nuestro problema es de maximizar.
s3 + s1 = 20 s3 = 20 – s1 ≥0 s3 ≤ 20 / 1
-2s3 + t = 20 -2s3 = 20 – t ≥0 s3 ≤ 20 / -2
s3 + s = 40 s3 = 40 – s ≥0 s3 ≤ 40 / 1
s t s1 s2 s3 z
s1 0 0 1 -1 1 0 20
t 0 1 0 1 -2 0 20
s 1 0 0 0 1 0 40
0 0 0 2 -1 1 160
Ahora se hacen los cambios necesarios para que nuestras variables sean básicas.
Para ello se pivota sobre el coeficiente de (s3, s1), buscamos hacer 0 los coeficientes
tecnológicos de la columna de s3.
s t s1 s2 s3 z
s3 0 0 1 -1 1 0 20
t 0 1 2 -1 0 0 60
s 1 0 -1 1 0 0 20
0 0 1 1 0 1 180
s = 20
t = 60
z = 180
Y tenemos que:
s1 + t = 180
s2 + t = 180
Página 31 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
Por lo que si aumentamos s1 o s2, la función objetivo disminuye (no debe darse,
nuestro problema es de maximizar), por lo que esta tabla es la óptima. Si la solución es
única, se debe obtener el mismo resultado con el método gráfico que con el simplex.
Un PPL tiene una solución, infinitas soluciones o ninguna solución, nunca puede tener
2, 3 ó 4 soluciones.
Minimizar – x1 – 2x2
Sujeto a 2x1 + 2x2 + x4 = 6
x1 + 4x2 – x3 + x5 = 12
x1, x2, x3, x4, x5 ≥ 0
Página 32 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
x1 x2 x3 x4 x5
x4 2 2 0 1 0 6 sale 6/2=3 podemos elegir
cualquier opción,
x5 1 4 -1 0 1 12 12 / 4 = 3 elegimos la primera
1 2 0 0 0 0
entra
el mayor
entre
todos los
positivos
x1 x2 x3 x4 x5
x2 2/2=1 2/2=1 0/2=0 1/2 0/2=0 6/2=3 ←Dividimos toda la fila por el pivote
1-(2∙2)= 4-(2∙2)= -1-(2∙0)= 0-(2∙1)= 1-(2∙0)= 12-(2∙6)=
x5 -3 0 -1 -2 1 0 ←le restamos 2 veces la 1ª fila
x1 x2 x3 x4 x5
x2 1 1 0 1/2 0 3
x5 -3 0 -1 -2 1 0
-1 0 0 -1 0 -6
Esta tabla es óptima ya que cumple el criterio de optimalidad (todos los valores
de la fila z son ≤ 0). La matriz de las variables es:
( )
Página 33 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
x1 x2 … xi … xn
x1 -a
x2 b
zj-cj >0 j
b) No acotado: Columna de variable que entra con todos los términos negativos
x1 x2 … xi … xn
x1 -a
xi -b
-α
x1 x2 … xi … xn
x1 0
x2 b
zj-cj >0 j
x1 x2 … xi … xn
x1 a
x2 b
0
e) Rayo óptimo: Variables no básicas con término fila z igual a cero y columna
negativa. zj-cj >0 j
x1 x2 … xi … xn
x1 -a
xi -b
0
Página 34 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
entra
coeficientes 3 2 0 0
de z en la
f.o. x1 x2 s1 s2
0 s1 2 3 1 0 12 12 / 2 = 6 Elegimos la 2ª
fila que es la
0 s2 2 1 0 1 8 sale 8/2=4 menor
-3 -2 0 0 0
(0.2+0·2)-3= -3
(0·3-0·1)-2= -2
(0·1+0·0)-0= 0
(0·0+0·1)-0= 0
(0·12+0·8)= 0
Página 35 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
Entra
(el mayor entre
todos los negativos)
coeficientes 3 2 0 0
de z en la
f.o. x1 x2 s1 s2
0 s1 0 2 1 -1 4 sale 4/2=2 elegimos la
primera fila,
3 x1 1 1/2 0 1/2 4 4:1/ 2 = 8 que es la menor
0 -1/2 0 3/2 12
A la 2ª fila le restamos la 1ª multiplicado por ¼
Dividimos el 1º renglón entre el pivote (2).
A la 3ª fila le sumamos la 1ª multiplicada por ¼
coeficientes 3 2 0 0
de z en la f.o. x1 x2 s1 s2
2 x2 0 1 1/2 -1/2 2
3 x1 1 0 -1/4 3/4 3
0 0 1/4 5/4 13
La tabla cumple con la condición de optimalidad al ser todos los coeficientes del
renglón z > 0 y es factible por ser los términos del lado derecho > 0. Luego la solución
es:
( )
( )
SOLUCIÓN:
Página 36 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
coeficientes -3 2 -2 0 0 0
de z en la
f.o. x1 x2+ x2- s1 s2 s3
0 s1 -1 -1 1 1 0 0 1
0 s2 4 2 -2 0 1 0 5
0 s3 0 -1 1 0 0 1 1
3 -2 2 0 0 0 0
-3 2 -2 0 0 0
x1 x2+ x2- s1 s2 s3
0 s1 -1 -1 1 1 0 0 1 Elegimos la 2ª fila cuyo cociente
del lado derecho entre sus
0 s2 4 2 -2 0 1 0 5 sale 5/4 correspondientes elementos
positivos en la columna de la
variable que entra (x1) sea el más
0 s3 0 -1 1 0 0 1 1 pequeño.
3 -2 2 0 0 0 0
Entra La segunda fila la dividimos por el
(mayor pivote (4)
valor de A la 1ª fila le sumamos la nueva 2ª
fila
entre los
A la 4ª fila le restamos la nueva 2ª
positivos fila multiplicada por 3
de la fila
Z)
Página 37 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
-3 2 -2 0 0 0
x1 x2+ x2- s1 s2 s3
9/4:1/2
0 s1 0 -1/2 1/2 1 1/4 0 9/4 =9/2
-3 x1 1 1/2 -1/2 0 1/4 0 5/4
0 s3 0 -1 1 0 0 1 1 sale 1/1=1
-3 2 -2 0 0 0
x1 x2 + x2- s1 s2 s3
0 s1 0 0 0 1 1/4 -1/2 7/4
-3 x1 1 0 0 0 1/4 1/2 7/4
-2 x2- 0 -1 1 0 0 1 1
0 0 0 0 -3/4 -7/2 -29/4
Z*= -29/4
x1*=7/4 x2*= x2+* - x2-*=0-1= -1
Max x1 + x 2
Sujeto a -2x1 + x2 < 1
x1 - x2 < 1
xi ≥ 0
SOLUCIÓN:
Max x1 + x 2
Sujeto a -2x1 + x2 +s1 = 1
x1 - x2 +s2 = 1
x i , si ≥ 0
coeficientes 1 1 0 0
de z en la
f.o. x1 x2 s1 s2
0 s1 -2 1 1 0 1
0 s2 1 -1 0 1 1
-1 -1 0 0 0
coeficientes 1 1 0 0
de z en la
f.o. x1 x2 s1 s2
0 s1 -2 1 1 0 1 sale
0 s2 1 -1 0 1 1
-1 -1 0 0 0
A la 2ª fila le
sumamos la 1ª
Entra A la 3ª fila le
sumamos la 1ª
coeficientes 1 1 0 0
de z en la
f.o. x1 x2 s1 s2
1 x2 -2 1 1 0 1
0 s2 -1 0 1 1 2
-3 0 1 0 1
Entra
Como podemos observar la columna de variable que debe entrar tiene todos los
términos negativos luego el problema es no acotado.
Página 39 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
El resultado:
Max 2x1 + x2
Sujeto a x1 + x2 < 2
-x1 + x2 < 3
3x1 + 2x2 < 10
xi ≥ 0
SOLUCIÓN:
Max 2x1 + x2
Sujeto a x1 + x2+ s1 = 2
-x1 + x2 + s2 = 3
3x1 + 2x2 + s3= 10
x i , si ≥ 0
Dibujamos la tabla:
2 1 0 0 0
x1 x2 s1 s2 s3
0 s1 1 1 1 0 0 2
0 s2 -1 1 0 1 0 3
0 s3 3 2 0 0 1 10
-2 -1 0 0 0 0
Página 41 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
2 1 0 0 0
x1 x2 s1 s2 s3
0 s1 1 1 1 0 0 2 2/1=2 sale
(2<10/3)
0 s2 -1 1 0 1 0 3
0 s3 3 2 0 0 1 10 10/3
-2 -1 0 0 0 0
A la 2ª fila le sumamos la 1ª
A la 3ª fila le restamos la 1ª
multiplicada por 3
Entra A la 4ª fila le sumamos la 1ª
multiplicada por 2
2 1 0 0 0
x1 x2 s1 s2 s3
2 x1 1 1 1 0 0 2
0 s2 0 2 1 1 0 5
0 s3 0 -1 -3 0 1 4
0 1 2 0 0 4
Z*= 4
x1*=2; x2*=0
Página 42 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
Página 43 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
Primera fase:
Minimizar zi
Sujeto a … + zi = … (restricciones ampliadas)
Segunda fase:
Minimizar c’x
ó
Maximizar c’x
Calculamos el nuevo renglón Z y volvemos a aplicar el simplex.
(c’ es la función objetivo original).
SOLUCIÓN:
Recordemos que:
Página 44 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
Minimizar z1 + z2
Sujeto a 2x1 + x2 - 2x3 + 3x4 + z1 =4
2x1 - x3 + x4 – s2 + z2 = 3
xi, s2, z1, z2 ≥ 0
0 0 0 0 0 1 1
x1 x2 x3 x4 s2 z1 z2
1 z1 2 1 -2 3 0 1 0 4 4/2=2 elegimos el segundo renglón,
1 z2 2 0 -1 1 -1 0 1 3 sale 3/2 que es el menor (3/2<2)
4 1 -3 4 -1 0 0 7
(-2·1+(-1)·1)-0= -3
(0·1+(-1)·1)-0= -1
(2·1+2·1)-0= 4
(3·1+1·1)-0= 4
(1·1+0·1)-1= 0
(0·1+1·1)-1= 0
(1·1-1·0)-0= 1
(4·1+3·1)= 7
Dividimos el 2º renglón
Entra entre el pivote (2).
Al 1º le restamos el 2º.
(el mayor entre todos los positivos, aunque
podríamos elegir el otro 4 (minimizar) ↓
0 0 0 0 0 1 1
x1 x2 x3 x4 s2 z1 z2
1 z1 0 1 -1 2 1 1 -1 1 sale 1/2 Elegimos la 1ª fila , que
0 x1 1 0 -1/2 1/2 -1/2 0 1/2 3/2 3 / 2:1/2=3 es el menor (1/2<3)
0 1 -1 2 1 0 -2 1
Dividimos las 1ª fila entre el
Entra pivote (2)
A la 2ª fila le restamos la
(el mayor primera dividida por 4.
entre todos
los positivos
A la 3ª fila le restamos la 1ª
(minimizar)) ↓
Página 45 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
0 0 0 0 0 1 1
x1 x2 x3 x4 s2 z1 z2
0 x4 0 1/2 -1/2 1 1/2 1/2 -1/2 ½
0 x1 1 -1/4 -1/4 0 -3/4 -1/4 3/4 5/4
0 0 0 0 0 -1 -1 0
Segunda fase: una vez que hemos tachado las columnas de z, pasamos a una
nueva tabla en la que recalculamos el renglón z y la función objetivo es la de partida:
(min 2x1 + 4x2 + x4).
coeficientes 2 4 0 1 0
en la f.o.
x1 x2 x3 x4 s2
1 x4 0 1/2 -1/2 1 1/2 1/2
2 x1 1 -1/4 -1/4 0 -3/4 5/4
0 -4 -1 0 -1 3
(1·0+2·1)-2= 0
(1·1/2+2·(-1/4))-4= -4
(1·(-1/2)+2·(-1/4))-0= -1
(1·1+2·0)-1= 0
(1·1/2+2·-(3/4))-0= -1
(1·1/2+2·5/4)= 3
( )
( )
( )
Página 46 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
Se trata de obligar a que z sea cero mediante un coeficiente muy grande (M).
SOLUCIÓN:
Recordemos que:
Luego:
Página 47 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
coeficientes 2 4 0 1 0 M M
en la f.o. x1 x2 x3 x4 s2 z 1 z 2
M z1 2 1 3 1 0 1 0 3 sale 3/3=1 (menor)
M z2 2 0 1 1 -1 0 1 4 4/1 = 4
4M-2 M-4 4M 2M-1 -M 0 0 7M
Dividimos el 1º renglón entre el
Entra pivote (3).
el mayor Al 2º le restamos el 1º dividido
entre todos entre 3.
los Recalculamos el z.
positivos,
(minimizar)
coeficientes 2 4 0 1 0 M M
en la f.o. x1 x2 x3 x4 s2 z1 z2
0 x3 2/3 1/3 1 1/3 0 1/3 0 1 sale 1:(2/3)=3/2
M z2 4/3 -1/3 0 2/3 -1 -1/3 1 3 3:(4/3)=9/4
coeficientes 2 4 0 1 0 M M
en la f.o. x1 x2 x3 x4 s2 z1 z2
2 x1 1 1/2 3/2 1/2 0 1/2 0 3/2
M z2 0 -1 -2 -4/3 -1 -1 1 1
0 -M -2M (-4/3)M -M -3M 0 M+3
Esta tabla ya es óptima, todos los coeficientes del renglón z son ≤0. Sin
embargo, no hemos conseguido que el sistema expulsara a z2, ya que z2 = 1, por lo tanto
este problema no tiene solución factible. Como puede comprobarse, z2 no puede
hacerse cero, por tanto el problema inicial es infactible.
Página 48 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
Min: 20x1+10x2
s.a: 20x1+10x2≥75
12x1+7x2≤55
xi≥0
Recordemos que:
Luego:
Min: 20x1+10x2
s.a: 20x1+10x2-S1+Z1=75
12x1+7x2+S2=55
xi; Si; Zi ≥0
Página 49 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
Recordemos que los métodos de las dos fases y M grande se utilizan cuando en
el P.P.L tenemos restricciones del tipo “> , =” en los que hay que añadir variables de
holgura del tipo zi y –si.
Por lo que para este problema podremos aplicar el método de la M grande, que
recordamos que se trata de obligar a que z sea cero mediante un coeficiente muy grande
(M).
Luego:
Min: 20x1+10x2+M∙Z1
s.a: 20x1+10x2-S1+Z1=75
12x1+7x2+S2=55
xi; Si; Zi ≥0
Lo plasmamos en la tabla:
coeficientes 20 10 0 M 0
en la f.o. x1 x2 S1 Z1 S2
75/20=3,75
M z1 20 10 -1 1 0 75 (menor)
sale
0 s2 12 7 0 0 1 55 55/12 = 4,58
(20·M+12·0)-20 (10·M+7·0)-10 (-1·M+0·0)-0 (1·M+0·0)-M (0·M+1·0)-0 75·M+55·0 Dividimos la
= = = = = = 1º fila entre
20M-20 10M-10 -M 0 0 75M el pivote
(20).
Al 2º le
restamos el 1º
Entra multiplicado
el mayor entre
por
todos los
12/20=3/5.
positivos,
Recalculamos
(minimizar)
el z.
coeficientes 20 10 0 M 0
en la f.o. x1 x2 S1 Z1 S2
75/20=
20 x1 1 1/2 -1/20 1/20 0 15/4
12-(20∙3/5) = 7-(10∙3/5) = 0-(-1∙3/5) = 0-(1∙3/5) = 1-(0∙3/5) = 55-(75∙3/5) =
0 s2 0 1 3/5 -3/5 1 10
(20·1+0·0)- (1/2·20+1·0)-10 (-1/20·20+3/5·0)- (1/20·20+(-3/5)·0)-M (0·20+1·0)-0 15/4·20+10·0
20 = = 0= = = =
0 0 -1 1-M 0 75
SOLUCIÓN:
Min: 15x1+10x2
s.a: 20x1+10x2≥75
8x1+3x2≤55
xi; ≥0
Luego:
Min: 15x1+10x2
s.a: 20x1+10x2-S1+Z1=75
8x1+3x2+S2=55
xi ; Si ; Zi ≥0 i
Luego:
Min: 15x1+10x2+M∙Z1
s.a: 20x1+10x2-S1+Z1=75
8x1+3x2+S2=55
xi; Si; Zi ≥0 i
Lo plasmamos en la tabla:
coeficientes 15 10 0 M 0
en la f.o. x1 x2 S1 Z1 S2
75/20=3,75
M Z1 20 10 -1 1 0 75 (menor)
sale
0 S2 8 3 0 0 1 55 55/8 = 6,87
(20·M+8·0)-15 (10·M+3·0)-10 (-1·M+0·0)-0 (1·M+0·0)-M (0·M+1·0)-0 75·M+55·0 Dividimos la
= = = = = = 1º fila entre
20M-15 10M-10 -M 0 0 75M el pivote
(20).
Al 2º le
Entra restamos el 1º
el mayor entre multiplicado
todos los por 8/20=2/5.
positivos, Recalculamos
(minimizar) el z.
coeficientes 15 10 0 M 0
en la f.o. x1 x2 S1 Z1 S2
15 x1 1 1/2 -1/20 1/20 0 75/20=15/4
8-(20∙2/5)= 3-(10∙2/5)= 0-(-1∙2/5)= 0-(1∙2/5)= 1-(0∙2/5)= 55-(75∙2/5)=
0 S2 0 -1 2/5 -2/5 1 25
(15·1+0·0)- (15·1/2+0·-1)- (15·-1/20+0·2/5)- (15·1/20+0·-2/5)-M (15·0+0·1)-0 15·15/4+0·25
15 = 10 = 0= = = =
0 -5/2 -15/20 15/20-M 0 225/4
variables 4 8 0 1 0 0 0
básicas
actuales x1 x2 x3 x4 x5 s1 s2
0 x5 0 1/2 -2 - 1/2 1 - 1/2 1/2 1
4 x1 0 1/4 - 1/2 1/4 0 - 1/4 - 1/2 1
0 -7 -2 0 0 -1 -1 4
Y la solución óptima:
( )
variables 4 8 0 1 0 0 0
básicas
actuales x1 x2 x3 x4 x5 s1 s2
0 x5 2 1 -3 0 1 -1 0 3
1 x4 4 1 -2 1 0 -1 -1 4
0 -7 -2 0 0 -1 -1 4
( )
Nos encontramos con dos puntos que son solución del problema. El lugar
geométrico de los puntos que los une (segmento) también es solución del problema:
Página 53 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
Podemos preguntarnos ¿qué interés tiene para nosotros calcular todas las
soluciones de un problema de programación lineal? A priori, todas las soluciones tienen
las mismas posibilidades de ser la correcta, pero a posteriori puedo tener en cuenta
factores que antes no había considerado. Puedo tener en cuenta factores secundarios si
los primeros criterios han empatado.
Por ejemplo: tengo que localizar un almacén para suministrar a una provincia
con el menor coste, y obtengo varios posibles puntos. En principio todos son válidos,
ya que el coste es mínimo en todos ellos, pero los mejores podrían ser los que estuvieran
más cerca de la provincia, o los que tuvieran aeropuerto, o el que está más cerca de la
capital…
Las mejores
soluciones
están en la
intersección Provincia
Solución
Página 54 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
Solución del
primer problema
Solución del
segundo problema
x1 x2 x3 x4 x5 s1 s2
x1 2 0
Si introducimos x3 tiene que salir x1. La variable que intenta entrar sigue con
valor 0, hemos cambiado de base pero no de punto (las demás variables no cambian).
Decimos que una solución es degenerada si alguna variable básica está a valor 0.
Por ejemplo, supongamos que tenemos un vértice por el que pasan 3 ecuaciones
(R1, R2, R3). A la hora de realizar el simplex, obtengo una base (por ejemplo R1, R2),
pero puedo cambiar de base a (R1, R3) y sigo estando en el mismo vértice. Igual pasa si
tomo la base que falta (R3, R2). Puedo saltar de una base a otra infinitamente sin llegar
nunca al final, por lo que el método simplex falla en este caso:
R3
R2
R1
Página 55 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
En este caso estamos ante un ciclo. Sólo podemos tener ciclos si tenemos una
solución básica degenerada (si alguna variable básica vale 0). Lo normal es que los
problemas no ciclen, pero si se da el caso, tenemos una regla anticiclado:
Cogemos todas las variables y las ordenamos como queramos. Cada vez que se
produzca un empate en el renglón z, elijo la variable que esté antes en la lista que hemos
creado de forma arbitraria.
Página 56 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
2.6- DUALIDAD.
Hasta ahora hemos visto el método simplex suponiendo que los coeficientes son
conocidos y exactos, pero no sabemos cómo influyen pequeños cambios de los
coeficientes en la solución final. Después de resolver el problema hay que evaluar esas
posibles variaciones, para lo que usaremos el concepto de Dualidad. Desde un punto de
vista abstracto, la dualidad significa estudiar dos problemas muy parecidos, de forma
que conociendo la solución de uno conozco también la solución del otro. De esta forma
resolveremos el problema que sea más fácil.
Página 57 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
Para poder operar tenemos que pasarlo todo a forma matricial (ahora los
paréntesis son matrices) y ya lo tenemos en forma canónica:
(P) ( )
( )
(D)
( ) ( )
Si lo extendemos:
Existe la tabla de “Dualidad Extendida”, que presenta todos los casos posibles de
problemas duales y primales. Si el problema primal es de minimizar la tabla se lee de
izquierda a derecha, y si es de maximizar, se lee de derecha a izquierda. Regla
nemotécnica: “a restricciones de tipo natural le corresponden variables de tipo natural”.
Minimizar Maximizar
≥ ≥0
Restricciones = libres Variables
≤ ≤0
≥0 ≤
Variables libres = Restricciones
≤0 ≥
Página 59 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
Demostración:
Multiplico la inecuación (1) por w’0 por la izquierda (recordemos que w0 es una
matriz 1x1, y que para cambiar el orden de los términos de un producto se trasponen
ambos):
Si existen soluciones factibles para los problemas primal y dual que dan igual
valor a los respectivos objetivos, tales soluciones son óptimas.
Página 60 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
xi si · B1 xi si
A I cB xB 1
B ·A B1
c’B·B1
(P) tiene solución óptima finita si y solo si (D) tiene solución óptima finita.
Si (P) es ilimitado (no acotado) (D) es infactible.
Si (D) es ilimitado (P) es infactible.
Si (P) es infactible (D) es infactible o ilimitado (no se sabe).
Si (D) es infactible (P) es infactible o ilimitado (no se sabe).
Página 61 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
Ejemplo (muy inusual) en el que los dos problemas (P) y (D) son infactibles:
Notaciones:
Teorema 2: Dada la tabla óptima del simplex del problema primal, si z t-ct es el
valor de la fila indicador asociado a una variable primal básica original en la j-ésima
restricción primal, entonces el valor óptimo de la j-esima variable dual de decisión es:
| |
Página 62 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
coeficientes 3 2 0 0
de z en la
f.o. x1 x2 s1 s2
2 x2 0 1 1/2 -1/2 2
3 x1 1 0 -1/4 5/4 3
0 0 1/4 5/4 13
Los valores de las variables para la solución óptima del problema primal
correspondiente son:
x1* = 3, x2 * = 2
Los valores de las variables para solución óptima del problema dual
corresponden a los valores | | de las variables de holgura:
| |
| |
( )
⁄ ⁄
( )
⁄ ⁄
Página 63 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
Página 64 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
Supongamos que tenemos x* como solución óptima del problema en una base
asociada o B:
∙B1
A b CB B1·A B1·b
C’B · B1.b
Aquí, b representa las cantidades disponibles o los recursos que tenemos.
Imaginemos que las cantidades varían ligeramente, pero la modificación es lo
suficientemente pequeña como para que la solución óptima siga teniendo la misma base:
· B1
A b + b CB B1 · (b + b)
C’B · B1 · (b + b)
Por ejemplo, por cada unidad que aumente b1, la función objetivo aumentará y1 ·
b1. Me compensaría pagar por b1 siempre y cuando b1 ≤ y1. La solución dual es el
precio unitario que estoy dispuesto a pagar por cada recurso, si no cambio de base.
Si existe holgura significa que me sobran recursos (por ejemplo, horas de máquina) y no
estaría dispuesto a pagar nada por adquirir unos recursos que me sobran: y1 · s1 = 0.
Página 65 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
de cerveza producida. ¿Cuánto debe fabricar de cada cerveza para que el beneficio sea
máximo?
N R B Disponibilidad
Malta 1 1 2 30
Levadura 1 2 2 45
Beneficio 4 7 3
4 7 3 0 0
x1 x2 x3 s1 s2
0 s1 1 1 2 1 0 30 30 / 1 = 30
0 s2 1 2 2 0 1 45 sale 45 / 2 = 22,5
(22,5<30)
-4 -7 -3 0 0 0
entra
(el más
negativo)
Página 66 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
x1 x2 x3 s1 s2
0 s1 1/2 0 1 1 -1/2 15/2 sale 15/2: 1/2 = 15
(15<45)
4 7 3 0 0
x1 x2 x3 s1 s2
4 x1 1 0 2 2 -1 15
7 x2 0 1 0 -1 1 15
0 0 5 1 3 165
| |
| |
( )
Página 67 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
EJEMPLO:
SOLUCIÓN:
( )
x1 · t1 = 0
x2 · t2 = 0
x3 · t3 = 0
x4 · t4 = 0
x5 · t5 = 0
Página 68 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
w1 · s1 = 0
w2 · s2 = 0
minimizar 19w1
sujeto a w1 ≥ 10 si w1 = 24 >10 t1 ≠ 0, x1·t1 = 0 x1= 0
w1 ≥ 24 w1 = 24 = 24 t2 = 0 x2 = ?
2w1 ≥ 20 2·24 >20 t3 ≠ 0, x3·t3 = 0 x3 = 0
3w1 ≥ 20 3·24 > 20 t4 ≠ 0, x4·t4 = 0 x4 = 0
5w1 ≥ 25 5·24 > 25 t5 ≠ 0, x5·t5 = 0 x5 = 0
x2 + s1 ≤ 19 s1 = 0 x2 =19
minimizar 57w2
sujeto a 2w2 ≥ 10 si w2 = 25 >10 t1 ≠ 0, x1·t1 = 0 x1= 0
4w2 ≥ 24 4·25 > 24 t2 ≠ 0, x2·t2 = 0 x2 = 0
3w2 ≥ 20 3·25 >20 t3 ≠ 0, x3·t3 = 0 x3 = 0
2w2 ≥ 20 2·25 > 20 t4 ≠ 0, x4·t4 = 0 x4 = 0
w2 ≥ 25 25 = 25 t5 = 0 x5 = ?
x5 ≤ 57 s2 = 0 x5 = 57
Página 69 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
Se puede utilizar el método simplex para resolver el problema dual, pero se hace
directamente, sin aplicar la tabla simplex al problema dual. En su lugar, aplicaremos la
tabla simplex al problema primal y le daremos un tratamiento distinto. Recordemos que
para una tabla simplex tengo dos condiciones: factibilidad y optimalidad, y que un
punto es factible en (P) si es óptimo en (D). Vamos a ver los pasos (4) para resolver un
problema mediante el método simplex dual:
¿ bi ≥ 0 i ? si OK
SOLUCIÓN:
Página 70 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
minimizar 12x1 + 5x2 + 0s1 + 0s2 minimizar 12x1 + 5x2 + 0s1 + 0s2
4x1 + 2x2 s1 = 80 4x1 2x2 + s1 = 80
sujeto a sujeto a
2x1 + 3x2 s2 = 90 2x1 3x2 + s2 = 90
x1, x2 ≥ 0 x1, x2 ≥ 0
12 5 0 0
x1 x2 s1 s2
0 s1 4 2 1 0 80 es la que tiene mayor valor entre los
0 s2 2 3 0 1 90 sale negativos del lado derecho
12 5 0 0 0
entra
12/2 Se divide el renglón z entre los negativos de la variable que sale y se
5/3 = 5/3
=6 toma el menor resultado
12 5 0 0
x1 x2 s1 s2
0 s1 8/3 0 1 2/3 20 sale es la que tiene menor valor
entre los negativos del
5 x2 2/3 1 0 1/3 30 lado derecho
26/3 0 0 5/3 150
Entra
(2,5<3,25)
(26/3) / (8/3) = (5/3) / (2/3) = Se divide el renglón z entre los negativos de la
3,25 2,5 variable que sale y se toma el menor resultado
Esta tabla verifica la condición de optimalidad (el método simplex dual nos lo
garantiza), pero no cumple la condición de factibilidad, ya que no todo el lado derecho
es ≥ 0. La función objetivo va empeorando debido a que el método simplex dual parte
de un punto que no está dentro de la región factible pero que tiene un buen valor de la
función objetivo (un punto óptimo no factible). Por tanto, al irnos acercando a la región
factible en busca de un punto factible, la función objetivo empeora, pero nos acercamos
cada vez más a cumplir las restricciones.
Página 71 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
12 5 0 0
x1 x2 s1 s2
0 s2 4 0 3/2 1 30
5 x2 2 1 1/2 0 40
2 0 5/2 0 200
( )
SOLUCIÓN:
-1 -2 -1 0 0
x1 x2 x3 s1 s2
0 s1 -2 -1 -2 1 0 -6
0 s2 -1 -3 -4 0 1 -10
1 2 1 0 0 0
Página 72 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
Primero se toma como variable que sale, que será la que tenga mayor valor
(en valor absoluto) de entre los negativos en el lado derecho (│-10│>│-6│).Es
decir sale S2
-1 -2 -1 0 0
x1 x2 x3 s1 s2
0 s1 -3/2 1/2 0 1 -1/2 -1
-1 x3 1/4 3/4 1 0 -1/4 5/2
3/4 5/4 0 0 1/4 -5/2
¿ bi ≥ 0 i ? no Seguimos pivotando
En esta iteración sale s1 pues es la única fila con valores negativos en el lado
derecho. Entra el mayor de entre 3/4:3/2=0,5 y 1/4:-1/2=-0,5 Es decir entra x1.
Es decir pivotamos sobre -3/2: Dividimos toda la 1ª fila entre -3/2. Una vez
realizado, a la 2ª fila le restamos la fila 1ª multiplicada por 1/4. Recalculamos el renglón
Z
-1 -2 -1 0 0
x1 x2 x3 s1 s2
-1 x1 1 -1/3 0 -2/3 1/3 2/3
-1 x3 0 5/6 1 1/6 -1/3 7/3
0 3/2 0 1/2 0 -3
Esta solución es factible ya que todos los elementos del lado derecho son ≥0
( )
Página 73 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
SOLUCIÓN:
3 4 1 0 0
x1 x2 x3 s1 s2
0 s1 -1 -2 -1 1 0 -12
0 s2 -2 -1 -4 0 1 -14
-3 -4 -1 0 0 0
Primero se toma como variable que sale que será la que tenga mayor valor (en
valor absoluto) de entre los negativos en el lado derecho (│-14│>│-12│).Es decir sale
S2
Pivotamos sobre -4. Realizamos las operaciones típicas: Dividimos toda la fila
del pivote (2ª fila) entre el pivote (-4). La 1ª fila le restamos la 2ª. Recalculamos Z
3 4 1 0 0
x1 x2 x3 s1 s2
0 s1 -1/2 -7/4 0 1 -1/4 -17/2
1 x3 1/2 1/4 1 0 -1/4 7/2
-5/2 -15/4 0 0 -1/4 7/2
Sale S1, al ser la única variable con valor negativo en la columna del lado
derecho.
3 4 1 0 0
x1 x2 x3 s1 s2
0 s1 2 7 0 -4 1 34
1 x3 1 2 1 -1 0 12
-2 -2 0 -1 0 12
Esta solución es factible ya que todos los elementos del lado derecho son ≥0
( )
Página 75 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
4 1 0 0
x1 x2 s1 s2
0 s1 4 3 1 0 12
0 s2 2 1 0 1 4
4 1 0 0 0
4 1 0 0 0
x1 x2 s1 s2 z1
0 s1 4 3 1 0 0 12 Sale la variable de
0 s2 2 1 0 1 0 4 holgura de la
restricción adicional
0 z1 1 1 0 0 1 M sale
4 1 0 0 0 0
Entra la variable que menos verifique la condición
de optimalidad, en este caso la más negativa, ya
entra que la condición para maximizar es ≥ 0
Página 76 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
4 1 0 0 0
x1 x2 s1 s2 z1
0 s1 0 1 1 0 4 124M
0 s2 0 1 0 1 2 4+2M
4 x1 1 1 0 0 1 M
0 3 0 0 4 4M
4 1 0 0 0
x1 x2 s1 s2 z1
0 s1 0 1 1 0 4 124M sale Sale la variable que
tiene mayor valor entre
0 s2 0 1 0 1 2 4+2M los negativos del lado
derecho (maximizar).
Recordar que M es un
4 x1 1 1 0 0 1 M número muy grande.
0 3 0 0 4 4M
Entra la variable que tenga el mayor resultado
entra
3/1=3 4/4=1
4 1 0 0 0
x1 x2 s1 s2 z1
0 z1 0 1/4 -1/4 0 1 M3
0 s2 0 1/2 1/2 1 0 2
4 x1 1 3/4 1/4 0 0 3
0 2 1 0 0 12
( )
Pero ahora tenemos que preguntarnos si la solución que hemos obtenido sirve
para nuestro problema original, ya que hemos añadido una restricción y el problema ha
cambiado. Tenemos que fijarnos en el valor de la variable de holgura de la restricción
adicional (z1):
Página 77 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
SOLUCIÓN:
3 5 -1 2 -4 0 0
x1 x2 x3 x4 x5 S1 S2
0 S1 1 1 1 3 1 1 0 6
0 S2 1 1 -2 -1 1 0 1 -3
-3 -5 1 -2 4 0 0 0
Como no todos los elementos del renglón Z (última fila) son negativos
deberemos aplicar la técnica de la restricción artificial:
Página 78 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
3 5 -1 2 -4 0 0 0
x1 x2 x3 x4 x5 S1 S2 Z1
0 S1 1 1 1 3 1 1 0 0 6
0 S2 1 1 -2 -1 1 0 1 0 -3
0 Z1 0 0 1 0 1 0 0 1 M sale
-3 -5 1 -2 4 0 0 0 0
Entra
3 5 -1 2 -4 0 0 0
x1 x2 x3 x4 x5 S1 S2 Z1
0 S1 1 1 0 3 0 1 0 -1 6-M
0 S2 1 1 -3 -1 0 0 1 -1 -3-M
-4 x5 0 0 1 0 1 0 0 1 M
-3 -5 -3 -2 0 0 0 -4 -4M
Ya todos los elementos del renglón Z son ≤0 luego la tabla es óptima y podemos
aplicar el método simplex-dual
Primero se toma como variable que sale. Esta será la que tenga mayor valor (en
valor absoluto) de entre los negativos en el lado derecho (│-3-M│>│6-M│).Es decir
sale S2
Página 79 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
3 5 -1 2 -4 0 0 0
x1 x2 x3 x4 x5 S1 S2 Z1
0 S1 1 1 0 3 0 1 0 -1 6-M
0 x3 1 1 -3 -1 0 0 1 -1 -3-M sale
-4 x5 0 0 1 0 1 0 0 1 M
-3 -5 -3 -2 0 0 0 -4 -4M
Entra
3 5 -1 2 -4 0 0 0
x1 x2 x3 x4 x5 S1 S2 Z1
0 S1 1 1 0 3 0 1 0 -1 6-M
-1 x3 -1/3 1/3 1 1/3 0 0 -1/3 1/3 1+1/3M
-4 x5 1/3 -1/3 0 -1/3 1 0 1/3 2/3 2/3M-1
-4 -4 0 -1 0 0 -1 -3 -3M+7
Primero se toma como variable que sale. Esta será la que tenga mayor valor (en valor
absoluto) de entre los negativos en el lado derecho. Como tan solo la variable S1 tiene
un valor negativo en su elemento del lado derecho (6-M) este será la variable de salida
3 5 -1 2 -4 0 0 0
x1 x2 x3 x4 x5 S1 S2 Z1
0 S1 1 1 0 3 0 1 0 -1 6-M
-1 x3 -1/3 1/3 1 1/3 0 0 -1/3 1/3 1+1/3M
-4 x5 1/3 -1/3 0 -1/3 1 0 1/3 2/3 2/3M-1
-4 -4 0 -1 0 0 -1 -3 -3M+7
3 5 -1 2 -4 0 0 0
x1 x2 x3 x4 x5 S1 S2 Z1
0 Z1 -1 -1 0 -3 0 -1 0 1 -6+M
-1 x3 0 2/3 1 4/3 0 1/3 -1/3 0 3
-4 x5 1 1/3 0 5/3 1 2/3 1/3 0 3
-7 -7 0 -10 0 -3 -1 0 -15
( )
Max.: x1 + x2 +2x3
s.a.: 2x1 + x2+ x3 ≤ 8
x1 - 2x2 + 2x3 ≤ 10
xi ≥ 0
SOLUCIÓN:
Página 81 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
Dualidad Extendida
Minimizar Maximizar
≥ ≥0
Restricciones = libres Variables
≤ ≤0
≥0 ≤
Variables libres = Restricciones
≤0 ≥
Página 82 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
8 10 0 0 0
w1 w2 t1 t2 t3
0 t1 -2 -1 1 0 0 -1
0 t2 -1 2 0 1 0 -1
0 t3 -1 -2 0 0 1 -2
-8 -10 0 0 0 0
¿ bi ≥ 0 i ? si OK
En nuestro caso no todos los elementos del lado derecho son ≥0, luego pasamos
al paso 2.
Página 83 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
8 10 0 0 0
w1 w2 t1 t2 t3
0 t1 -2 -1 1 0 0 -1
0 t2 -1 2 0 1 0 -1
0 t3 -1 -2 0 0 1 -2 Sale
-8 -10 0 0 0 0
Entra
8 10 0 0 0
w1 w2 t1 t2 t3
0 t1 -3/2 0 1 0 -1/2 0
0 t2 -2 0 0 1 1 -3 Sale
10 w2 1/2 1 0 0 -1/2 1
-3 0 0 0 -5 10
Entra
Aun seguimos con elementos del lado derecho negativo, asi que debemos
pivotar. Ahora sale t2 y entra w1:
8 10 0 0 0
w1 w2 t1 t2 t3
0 t1 0 0 1 -3/4 5/8 9/4
8 w1 1 0 0 -1/2 -1/2 3/2
10 w2 0 1 1 1/4 1/4 1/4
0 0 0 -3/2 -13/2 29/2
( )
La metodología más corta, partiendo de la tabla óptima del problema dual (D) es
leerla de la misma tabla:
( )
Página 84 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
C1→ C1 +∆C1
⁄ ⁄
( ) ( ⁄ ⁄ ) ( ) ( )
⁄ ⁄
8 10 0 0 0
w1 w2 t1 t2 t3
0 t1 0 0 1 -3/4 5/8 9/4 +∆C1
8 w1 1 0 0 -1/2 -1/2 3/2 +0
10 w2 0 1 1 1/4 1/4 1/4 +0
0 0 0 -3/2 -13/2 29/2
[ ( )] [ ] [ ]
Página 85 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
2.8- SENSIBILIDAD.
maximizar 3s + 2t
sujeto a s + t ≤ 80
2s + t ≤ 100
s ≤ 40
s, t ≥ 0
3 2 0 0 0
s t s1 s2 s3
2 t 0 1 2 1 0 60
3 s 1 0 1 1 0 20
0 s3 0 0 1 1 1 20
0 0 1 1 0 180
3+ cs 2 0 0 0
s t s1 s2 s3
2 t 0 1 2 -1 0 60
3+cs s 1 0 -1 1 0 20
0 s3 0 0 1 1 1 20
[2∙0]+ [2∙(-1)]+
[2∙1]+ [2∙2]+ [2∙0]+ [2∙60]+
[( 3+cs)∙1] [( 3+cs)∙1]
[( 3+cs)∙0] [( 3+cs)∙(-1)] [( 3+cs)∙0] [( 3+cs)∙20]
+[0∙0]- +[0∙(-1)]-0
+[0∙0]-2 = +[0∙1]-0= +[0∙1]-0= +[0∙20]=
3+cs = =
0 0 1-cs 1+cs 0 180+20cs
Página 86 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
Recordemos que:
( )
Si cs > 1, la tabla anterior ya no sería óptima, por lo que habría que iterar. En
este caso entra s1 y sale s3.
3+ cs 2 0 0 0
s t s1 s2 s3
2 t 0 1 2 -1 0 60
3+cs s 1 0 -1 1 0 20
0 s3 0 0 1 1 1 20 sale
0 0 1-cs 1+cs 0 180+20cs
entra
3+ cs 2 0 0 0
s t s1 s2 s3
2 t 0 1 0 1 2 20
3+cs s 1 0 0 0 1 40
0 s1 0 0 1 1 1 20
0 0 0 2 1+ cs 160 + 40cs
Para la optimalidad debe cumplirse que 1+cs ≥ 0, por lo tanto cs ≥ 1. Nos
fijamos que en el punto donde cs=1 tenemos dos posibles soluciones:
Página 87 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
Para cs = 1 ambas soluciones son posibles, por lo que en cs = 1 tenemos
soluciones múltiples, y las infinitas soluciones vienen dadas por las bases de ambos
segmentos.
3 2+ ct 0 0 0
s t s1 s2 s3
2+ ct t 0 1 0 1 2 60
3 s 1 0 0 0 1 20
0 s3 0 0 1 1 1 20
0 0 1+2ct 1-ct 0 180 + 60ct
( )
3 2 0+cs1 0 0
s t s1 s2 s3
2 t 0 1 2 1 0 60
3 s 1 0 1 1 0 20
0 s3 0 0 1 1 1 20
[2∙2]+
[3∙(-1)]
0 0 +[0∙1]- 1 0 180
[0+cs1] =
1-cs1
Página 88 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
Vamos a ver qué ocurre cuando cambiamos algún elemento del vector del lado
derecho. Si cambiamos:
b1 → b1 + b1
·B1 +b
A b B ·A1
B ·b1
B1·b+B1·b
3 2 0 0 0
s t s1 s2 s3
2 t 0 1 2 1 0 60
3 s 1 0 1 1 0 20
0 s3 0 0 1 1 1 20
0 0 1 1 0 180
( )
( ) ( ) ( )
Página 89 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
3 2 0 0 0
s t s1 s2 s3
2 t 0 1 2 -1 0 60 + 2b1
3 s 1 0 -1 1 0 20 - b1
0 s3 0 0 1 -1 1 20 + b1
0 0 1 1 0 180 + b1
s + t ≤ 80 s + t ≤ 80-20 s + t ≤ 60
s + t ≤ 80 s + t ≤ 80+20 s + t ≤ 100
( )
Pero justo en el punto b1 = 20, tenemos dos bases que generan la misma
solución degenerada (en los puntos límites tenemos soluciones que son generadas por
muchas bases, pero sólo una solución).
Primero se toma como variable que sale, que es la que tenga menor valor entre
los negativos en el lado derecho. Si no hubiera ninguna variable que salga (negativa), la
tabla sería óptima.
Página 90 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
3 2 0 0 0
s t s1 s2 s3
2 t 0 1 2 1 0 60 + 2b1
3 s 1 0 1 1 0 20 b1 Sale
0 s3 0 0 1 1 1 20 + b1
0 0 1 1 0 180 + b1
Entra
3 2 0 0 0
s t s1 s2 s3
2 t 2 1 0 1 0 100
0 s1 1 0 1 1 0 0
0 s3 1 0 0 0 1 40
1 0 0 2 0 200
2 3 5 0 0
x1 x2 x3 s1 s2
3 x2 1 1 2 1 0 8
0 s2 2 0 3 1 1 12
1 0 1 3 0 24
Página 91 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
2 3 5 0 0 16
x1 x2 x3 s1 s2 x4
3 x2 1 1 2 1 0 5 8
0 s2 2 0 3 1 1 4 12
(3∙5)+
1 0 1 3 0 (0∙4)-16= 24
−1
Sale la variable cuyo cociente del lado derecho entre sus correspondientes
elementos positivos en la columna de la variable que entra sea el más pequeño
(8/5<12/4).
Página 92 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
2 3 5 0 0 16
x1 x2 x3 s1 s2 x4
3 x2 1 1 2 1 0 5 8 Sale
0 s2 2 0 3 1 1 4 12
1 0 1 3 0 −1 24
Entra
2 3 5 0 0 16
x1 x2 x3 s1 s2 x4
16 x4 1/5 1/5 2/5 1/5 0 1 8/5
0 s2 6/5 −4/5 7/5 1/5 1 0 28/5
6/5 1/5 7/5 16/5 0 0 128/5
Observamos que ya es óptima, pues todos los elementos del renglón Z son ≥0:
( ) ⁄
Esto significa que estaría dispuesto a pagar como máximo 8/5 por esa nueva
variable, interesa producirlo porque mejora el valor de la función objetivo (25,6>24).
En vez de añadirse nuevas variables, también puede pasar que cambie alguna
variable, en cuyo caso:
Si cambia una variable no básica se hace igual que si fuera una variable
nueva.
Si cambia una variable básica, supongo que la variable con los cambios
es una variable nueva (dejando la antigua) y construyo la nueva tabla. Luego se pivota
de forma que salga la antigua y entre la nueva. Una vez que haya salido la antigua,
tacho su columna.
Página 93 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
2 3 5 0 0
x1 x2 x3 s1 s2
3 x2 1 1 2 1 0 8
0 s2 2 0 3 1 1 12
1 0 1 3 0 24
( )
2·0 + 8 ≤ 5 no la verifica.
2x1 + x2 + s3 = 5
2 3 5 0 0 0
x1 x2 x3 s1 s2 s3
3 x2 1 1 2 1 0 0 8
0 s1 2 0 3 1 1 0 12
0 s3 2 1 0 0 0 1 5
1 0 1 3 0 0 24
Pero hemos añadido la nueva restricción sin transformarla como hacíamos antes
para la tabla III. Como resultado de no haber pivotado lo que hemos obtenido no es una
tabla simplex, ya que la columna x2 debería ser ( ). Tenemos que pivotar hasta
2 3 5 0 0 0
x1 x2 x3 s1 s2 s3
3 x2 1 1 2 1 0 0 8
0 s1 2 0 3 1 1 0 12
0 s3 1 0 −2 −1 0 1 −3
1 0 1 3 0 0 24
Página 94 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
Primero se toma como variable que sale, que es la que tenga menor valor entre
los negativos en el lado derecho. Si no hubiera ninguna variable que salga (negativa), la
tabla sería óptima.
2 3 5 0 0 0
x1 x2 x3 s1 s2 s5
3 x2 2 1 0 0 0 1 5
0 s1 7/2 0 0 −1/2 1 3/2 15/2
5 x3 − 1/2 0 1 1/2 0 − 1/2 3/2
3/2 0 0 5/2 0 1/2 45/2
( ) ⁄
Tenemos el problema:
Minimizar −x1 − 3x2
Sujeto a x1 + x2 ≤ 6
−x1 + 2x2 ≤ 6
x1 , x 2 ≥ 0
Página 95 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
−1 −3 0 0
x1 x2 s1 s2
−1 x1 1 0 2/3 −1/3 2
−3 x2 0 1 1/3 1/3 4
0 0 −5/3 −2/3 −14
( )
Modificamos ahora la tabla para que incluya al tiempo. Sustituimos los valores
de x1 y x2 con los nuevos valores y recalculamos el renglón Z de la forma habitual.
−1+2t −3+t 0 0
x1 x2 s1 s2
−1+2t x1 1 0 2/3 −1/3 2
−3+t x2 0 1 1/3 1/3 4
0 0 −5/3 + (5/3)t −2/3 − (1/3)t −14 + 8t
−5/3 + (5/3) t ≤ 0 t ≤ 1
−2/3 − (1/3) t ≤ 0 t ≥ −2
Para −2 ≤ t ≤ 1 obtenemos:
( )
Página 96 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
( )
No puedo coger el nuevo lado derecho y ponerlo en la tabla sin más, hay que
calcular el nuevo lado derecho:
⁄ ⁄
( ⁄ ) ( ) ( ) ( ⁄ )
⁄ ⁄
( ) ( ) ( )
La tabla queda:
−1 −3 0 0
x1 x2 s1 s2
−1 x1 1 0 2/3 −1/3 2 + (5/6) t
−3 x2 0 1 1/3 1/3 4 + (1/6) t
0 0 −5/3 −2/3 −14 − (4/3) t
2 + (5/6) t ≥ 0 t ≥ −12/5
4 + (1/6) t ≥ 0 t ≥ −2/3 (esta es la condición más restrictiva)
Para t ≥ −2/3
( )
La diferencia con respecto al punto anterior es que los valores del vector X* (x1
y x2) dependen del parámetro t.
Página 97 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 2 – Programación Lineal.
̃ ̃
{ }
̃ ̃
{ }
∑ ∑
Página 98 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 3 – Programación Lineal Entera.
origen 1 destino 1
origen 2 destino 2
origen 3 destino 3
cij
origen ... destino ...
...
origen n destino m
Página 99 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 3 – Programación Lineal Entera.
Como tenemos que minimizar el costo del transporte nos planteamos el siguiente
problema:
Y debe cumplirse que oT ≥ dT, la demanda total debe ser menor que la oferta
total, si no sería un problema infactible. En la vida real significaría que no somos
capaces de satisfacer toda la demanda, ya que no tenemos suficientes productos.
oT = dT
Para que esto se cumpla:
Σi Σj xij = Σi oi
Σj Σi xij = Σj dj
Y la nueva formulación del problema queda como sigue:
{ }
∑ ∑ ∑
∑ ∑ ∑
Siendo
Luego
Cada variable es ≥ 0 y ≤ oT, cada variable está acotada entre 0 y oT, por lo que
el problema no es ilimitado.
m destinos
n orígenes
zij cij
cij → costo
ci B B → marca de variable básica
xij → valor de la variable
xij (el costo reducido es 0)
Ejemplos de ciclos:
1º
1º
Este método no tiene en cuenta los costos. Para aplicarlo, seguir los siguientes
pasos:
PASO 2: Hacerla básica con valor igual al mínimo entre la oferta de esa
fila y la demanda de esa columna.
Destinos Ofertas
35
Orígenes
50
40
Deman 125
-das 45 20 30 30
(bal)
Primero tenemos que comprobar si está balanceado. Sumamos las ofertas por un
lado y las demandas por otro y obtenemos el mismo valor (35+50+40 = 45+20+30+30 =
125), por lo que está balanceado. Ahora elegimos la casilla más al noroeste y la
hacemos básica.
B
35
35
50
40
45 20 30 30 125
10
(me quedan
10 de la
oferta de la
primera
columna)
Ahora elijo la siguiente casilla más al noroeste y repito el proceso hasta que
complete todas las ofertas y demandas:
B
35 0
35
B
50 40
10
40
45 20 30 30 125
10
0
B
35 0
35
B B
50 40 20
10 20
40
45 20 30 30 125
10 0
0
Continuamos:
B
35
35
B B B
50 40 20 0
10 20 20
40
45 20 30 30 125
10 0 10
0
Siguiente adjudicación:
B
35
35
B B B
50 40 20 0
10 20 20
B
40 30
10
45 20 30 30 125
10 0 10
0 0
Y la última será:
B 0
35
35
B B B
50 40 20 0
10 20 20
B B
40 30 0
10 30
45 20 30 30 125
10 0 10 0
0 0
m=4
n=3
B = 4+3-1 = 6
Las m+n1 casillas elegidas no forman ciclos y son factibles, por lo que son
una solución básica factible. Pero este método no tiene en cuenta los costos, para
contar con los costos deberíamos aplicar el método de Vogel.
Este método SI tiene en cuenta los costes, elige como básicas las casillas con
un coste menor:
Destinos
8 6 10 9
35
Orígenes
9 12 13 7
50
14 9 16 5
40
45 20 30 30 125
Penali-
zaciones
9-8=1 9-6=3 13-10=3 7-5=2
8 6 10 9
8-6=2 35
9 12 13 7
9-7=2 50
14 9 16 5
9-5=4 40
45 20 30 30
Penalizaciones→
9-8=1 9-6=3 13-10=3 7-5=2
↓
8 6 10 9
8-6=2 35
9 12 13 7
9-7=2 50
14 9 16 5
B 40-30=
9-5=4
30 10
30-30=
45 20 30 0
8 6 10 9
8-6=2 8-6=2 35
9 12 13 7
12-9=3 9-7=2 50
14 9 16 5
B 40-30=
14-9=5 9-5=4
30 10
30-30=
45 20 30 0
8 6 10 9
8-6=2 8-6=2 35
9 12 13 7
12-9=3 9-7=2 50
14 9 16 5
B B 10-10=
14-9=5 9-5=4
10 30 0
20-10=
45 20 30 0
8 6 10 9
8-6=2 8-6=2 8-6=2 35
9 12 13 7
12-9=3 12-9=3 9-7=2 50
14 9 16 5
B B 10-10=
14-9=5 9-5=4
10 30 0
20-10=
45 20 30 0
8 6 10 9
B 35-10=
8-6=2 8-6=2 8-6=2
10 25
9 12 13 7
12-9=3 12-9=3 9-7=2 50
14 9 16 5
B B
14-9=5 9-5=4 0
10 30
10-10=
45 0 30 0
9-8=1 13-10=3
↓
9-8=1 9-6=3 13-10=3
14 9 16 5
B B
14-9=5 9-5=4 0
10 30
10-10=
45 0 30 0
9-8=1 13-10=3
↓
9-8=1 9-6=3 13-10=3
Finalizamos la tabla en las casillas que quedan. Como solo nos queda una
columna asignamos aquella celda que tenga el menor coste (fila 1ª, ya que 10<13)
Página 111 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 3 – Programación Lineal Entera.
9-8=1 13-10=3
↓
9-8=1 9-6=3 13-10=3
8 6 10 9
B B 25-25=
10-8=2 8-6=2 8-6=2 8-6=2
10 25 0
9 12 13 7
B
13-9=4 12-9=3 12-9=3 9-7=2 5
45
14 9 16 5
B B
14-9=5 9-5=4 0
10 30
0 0 30-25=5 0
Y la última asignación:
9-8=1 13-10=3
↓
9-8=1 9-6=3 13-10=3
0 0 5-5=0 0
8 6 10 9
B B
10 25
9 12 13 7
B B
45 5
14 9 16 5
B B
10 30
Una vez que hemos obtenido una solución básica factible tenemos que
comprobar que cumpla la condición de optimalidad. Para ello emplearemos el
problema dual. Nuestro problema era:
Maximizar ∑ ∑ Maximizar ∑ ∑
Sujeto a u1 + v1 ≤ c11
u1 + v2 ≤ c12 Sujeto a ui + vj ≤ cij
ui, vj son libres
…
u1 + vm ≤ c1m
u2 + v1 ≤ c21
u2 + v2 ≤ c22
…
u2 + vm ≤ c2m
…
un + v1 ≤ cn1
un + v2 ≤ cn2
…
un + vm ≤ cnm
8 6 10 9
B B
u1 = 0 (libre)
10 25
9 12 13 7
B B
u2 = 3
45 5
14 9 16 5
B B
u3 = 6
10 30
v1=6 v2=6 v3=10 v4=2
Suponemos que una variable queda libre (u1) y le ponemos el valor que
queramos, por comodidad le asignamos el valor cero.
La variable x1,2 es básica, la holgura de la restricción 2 del dual debe ser 0 para
que sea óptimo:
Seguimos:
u1 + v3 = c13 0 + v3 = 10 v3 = 10
u2 + v3 = c23 u2 + 10 = 13 u2 = 3
u2 + v1 = c21 3 + v1 = 9 v1 = 6
u3 + v2 = c32 u3 + 6 = 9 u3 = 3
u3 + v4 = c34 3 + v4 = 5 v4 = 2
Lo que obtengo es un conjunto de “u”, “v” y “x”, pero le falta algo para que se
verifique la condición de holgura complementaria, sólo falta que el vector u,v sea
factible (como el renglón z de una tabla simplex):
Entonces tenemos que calcular las cantidades para las variables no básicas (las
básicas están en negrita):
2 10 25 7
45 3 5 2
5 10 3 30
Este método nos permite encontrar una solución óptima a partir de una solución
básica factible. Veamos los pasos a seguir:
Calcular los ui y los vj, que son las soluciones del sistema de
ecuaciones. Primero asignamos un valor arbitrario a cualquiera de ellas
(por ejemplo u1=0). Esto lo hacemos para las variables o casillas básicas
“B”:
ui + vj = cij xij básica
Para las casillas no básicas, calcular la fórmula:
ui + vj cij xij no básica
Test propiamente dicho, se realiza para las casillas no básicas,
que deben ser todas menor o igual que cero para que la tabla se óptima:
ui + vj cij ≤ 0 xij no básica
8 6 10 9
B B
u1 = 0 (libre)
35 5 2 -8
9 12 13 7
B B
u2 = 1
10 20 20 -5
14 9 16 5
B B
u3 = 4
-2 6 10 30
v1=8 v2=11 v3=12 v4=1
u1 + v1 = c11 0 + v1 = 8 v1 = 8
u2 + v1 = c21 u2 + 8 = 9 u2 = 1
u2 + v2 = c22 1 + v2 = 12 v2 = 11
u2 + v3 = c23 1 + v3 = 13 v3 = 12
u3 + v3 = c33 u3 + 12 = 16 u3 = 4
u3 + v4 = c34 4 + v4 = 5 v4 = 1
Comprobamos que la tabla no es óptima, ya que hay casillas no básicas que son
positivos (para que fuera óptima deberían ser ≤0 todas las casillas no básicas). Ahora
hacemos el pivote: la casilla que entra es el mayor entre los positivos de las no
básicas (la que menos verifica la condición de optimalidad), en este caso la x2,3 = 6.
8 6 10 9
B B
u1 = 0 (libre)
35 5 2 -8
9 12 13 7
B B
u2 = 1
10 20 - 20 + -5
14 9 16 5
B B
u3 = 4
-2 6 + 10 - 30
v1=8 v2=11 v3=12 v4=1
8 6 10 9
B
35
9 12 13 7
B B B
10 10 30
14 9 16 5
B B
10 30
8 6 10 9
B
u1 = 0 (libre)
35 5 2 -2
9 12 13 7
B B B
u2 = 1
10 10 30 1
14 9 16 5
B B
u3 = -2
-8 10 -6 30
v1=8 v2=11 v3=12 v4=7
8 6 10 9
B
u1 = 0 (libre)
35 5 2 -2
9 12 13 7
B B B
u2 = 1
10 10 30 1
14 9 16 5
B B
u3 = -2
-8 10 -6 30
v1=8 v2=11 v3=12 v4=7
8 6 10 9
B
u1 = 0 (libre)
35 - 5 + 2 -2
9 12 13 7
B B B
u2 = 1
10 + 10 - 30 1
14 9 16 5
B B
u3 = -2
-8 10 -6 30
v1=8 v2=11 v3=12 v4=7
8 6 10 9
B B
25 10
9 12 13 7
B B
20 30
14 9 16 5
B B
10 30
8 6 10 9
B B
u1 = 0 (libre)
25 10 2 -7
9 12 13 7
B B
u2 = 1
20 -5 30 -4
14 9 16 5
B B
u3 = 3
-3 10 -1 30
v1=8 v2=6 v3=12 v4=2 Coste=1.070
8 6 10 9
B B
u1 = 0 (libre)
25 - 10 2 + -7
9 12 13 7
B B
u2 = 1
20 + -5 30 - -4
14 9 16 5
B B
u3 = 3
-3 10 -1 30
v1=8 v2=11 v3=12 v4=7
8 6 10 9
B B
u1 = 0 (libre)
-2 10 25 -7
9 12 13 7
B B
u2 = 3
45 -3 5 -2
14 9 16 5
B B
u3 = 3
-5 10 -3 30
v1=6 v2=6 v3=10 v4=2 Coste=1.020
Y esta tabla ya es óptima porque todos los valores de las variables o casillas no
básicas son menores o iguales que 0. El valor de la función objetivo ha ido mejorando
desde 1180 hasta 1020 (el coste se ha ido reduciendo). Como vemos, la tabla obtenida
es la solución básica factible que proporciona el método de Vogel, pero esto no siempre
es así. El método de Vogel nos da una solución factible que está más cerca de la
solución óptima que la que proporciona el método de la esquina noroeste, pero no tiene
porqué ser la solución óptima.
̂ {
̌ ∑ ̂ ∑ ̂ ∑ ̂
∑ ̂ ∑
̌ ∑ ∑
La nueva z ( ž ) es igual a la antigua z más una constante, por lo tanto los dos
problemas tienen la misma solución.
Oferta 4 3 Demanda
10 1 10
5
3 5
4 5
4 2
20 2 4 6 25
3
6
15 3 7 10
12
Ahora lo pasamos a una tabla para el método de transporte. Se ponen los nodos
de oferta (orígenes) en las filas y los de demanda (destinos) en las columnas, teniendo
en cuenta que los nodos de transbordo son tanto de oferta como de demanda. Luego se
le asigna el coste correspondiente a cada camino. Los nodos que no están relacionados
(sin olvidar el sentido) tienen un coste unitario muy elevado (ruta imposible, coste M), y
el coste para los nodos de transbordo es 0 (no cuesta nada llevar algo al mismo sitio).
Por último se asignan las ofertas y las demandas de cada nodo. Para los nodos de
transbordo (2; 4; 5) habrá que sumarles, además, la oferta total (o la demanda total).
Destinos
Ofertas
2 4 5 6 7
3 5 M 4 M
1 10
0 4 3 M M
2 20+45
orígenes M M 5 M 12
3 15
M 0 4 2 3
4 0+45
M M 0 M M 6 M 6
5 0+45
Demandas 0 0 10 25 10
+45 +45 45
Destinos
Ofertas
2 4 5 6 7
3 5 M 4 M
1 10
10
0 4 3 M M
2 65
45 20
orígenes M M 5 M 12
3 15
15
M 0 4 2 3
4 45
25 15 5
M M 0 M M 6 M 6
5 45
40 5
Demandas 45 45 55 25 10
x21 = 45, por tanto la cantidad que se ha trasbordado a través del nodo 2
es 45-45 = 0, es decir no se ha trasbordado mercancía a través del nodo 2.
x42 = 25, a través de 4 se ha trasbordado una cantidad de 45-25 = 20.
x53 = 40, a través de 5 se ha trasbordado una cantidad de 45-40 = 5.
SOLUCIONES DEGENERADAS.
8
6+∆ci B 10 B 9
u1 = 0 (libre)
10 25
12 13
9 B B 7
u2 = 3
45 5
14 9 B 16 5 B
u3 = 3-∆ci
10 30
v1=6 v2=6+∆ci v3=10 v4=2+∆ci
x11 = u1 + v1 – c11 = 0 + 6 – 8 = - 2
x14 = u1 + v4 – c14 = 0 + 2+∆ci – 9 = -7+∆ci < 0 ∆ci < 7
x22 = u2 + v2 – c22 = 3 +6+∆ci – 12 = -3+∆ci < 0 ∆ci < 3
x24 = u2 + v4 – c24 = 3 +2+∆ci – 7 = -2+∆ci < 0 ∆ci < 2
x31 = u3 + v1 – c31 = 3-∆ci + 6 – 14 = -5-∆ci < 0 ∆ci > -5
x33 = u3 + v3 – c33 = 3-∆ci + 10 – 16 = -3-∆ci < 0 ∆ci > -3
8 6 10 9
B B
u1 = 0 (libre)
-2 10 25 -7
9 12 13 7
B B
u2 = 3
45 -3 5 -2
14 9 16 5
B B
u3 = 3
-5 10 -3 30
v1=6 v2=6 v3=10 v4=2 Coste=1.020
Pasos 1 al 4
X11 X12 X13 X14 X21 X22 X23 X24 X31 X32 X33 X34
X12 1 0 0 0 0 10
0
X13 0 1 0 0 0 25
0
X21 0 0 1 0 0 45
0
X23 0 0 0 1 0 50
X32 0 0 0 0 1 10
0
X34 0 0 0 0 0 30
1
0 0 0 0 0 0
Pasos 5 y 6
X11 X12 X13 X14 X21 X22 X23 X24 X31 X32 X33 X34
X12 0 1 0 1 0 1 0 -1
1 -1
0 10
0
X13 1 0 1 0 -1
0 -1
0 1 0 1 25
0
X21 1 0 0 0 1 0 0 0 1 0 0 45
0
X23 -1 0 0 0 0 1 1 -1
1 0 0 50
X32 0 0 -1
0 0 0 -1
0 1 1 1 10
0
X34 0 0 0 1 0 0 0 1 0 0 0 30
1
-2 0 0 -7 0 -3 0 -2 -5 0 -3 0
8 6 10 9
B B
- +
9 12 13 7
B B
+ -
14 9 16 5
B B
X14:
8 6 10 9
B B
+ -
9 12 13 7
B B
14 9 16 5
B B
- +
X22:
8 6 10 9
B B
+ -
9 12 13 7
B B
- +
14 9 16 5
B B
X24:
8 6 10 9
B B
+ -
9 12 13 7
B B
+ -
14 9 16 5
B B
- +
X31:
8 6 10 9
B B
- +
9 12 13 7
B B
+ -
14 9 16 5
B B
- +
X33:
8 6 10 9
B B
- +
9 12 13 7
B B
14 9 16 5
B B
+ -
Es un caso especial del problema de transporte donde cada origen oferta 1 y cada
destino demanda 1, aunque todos los caminos son posibles. Un ejemplo típico es
asignar a cada máquina una tarea:
máquina 1 tarea 1
máquina 2 tarea 2
máquina 3 tarea 3
máquina ...
cij tarea…
máquina n tarea m
Deberíamos añadir la restricción de que las xij sólo pueden ser 0 ó 1, pero no es
necesario, ya que por la propiedad vista al final del apartado 3.2.3 las soluciones son
enteras si las ofertas y las demandas son enteras (1 es entero).
Supongamos que tenemos una tabla de asignación con los costes de 5x5 y la
vamos a resolver mediante el Algoritmo Húngaro. Nos damos cuenta de que está
balanceada, si no lo estuviera tendríamos que balancearla añadiendo líneas ficticias con
coste cero.
*
PASO 3 “Marcar y rayar”.
7 2 0 0 5 Marcar las filas sin ceros encuadrados.
3 0 3 1 3 * Marcar las columnas con cero tachado en la fila marcada.
0 7 2 0 4 Marcar las filas con cero encuadrado en columna marcada.
Repetir los dos pasos anteriores mientras se realicen nuevas
5 0 2 4 7 * marcas.
8 9 1 3 0 Sobrerayar las filas no marcadas y las columnas marcadas.
7 3 0 0 5 PASO 2.
2 0 2 0 2 Esta ya es una solución óptima, pues tenemos un solo cero
encuadrado en cada fila y en cada columna.
0 8 2 0 4
4 0 1 3 6
8 10 1 3 0
Vamos a ver las relaciones que existen entre el problema entero y el relajado:
¿Será mejor resolver el árbol por ramas o por niveles? Al resolver por niveles
tardamos mucho en encontrar una solución entera. Si resolvemos por ramas (también se
llama por profundidad), llegamos antes a los primeros nodos terminales y podemos
descartar grandes ramas antes de resolverlas por el valor de z. Otro método consistiría
en elegir el nodo a resolver en función del valor de la función objetivo, se elegirá el
mejor valor como límite para la solución que podemos obtener a partir de él.
Puede ocurrir que una condición para las variables no sea sólo que sean enteras,
sino que sean múltiplo de algún valor (por ejemplo). En ese caso lo que cambia es la
forma de hacer el corte:
( )
Debemos elegir los múltiplos de 4 que estén por encima y por debajo de 7, que
son x3 ≤ 4 y x3 ≥ 8.
maximizar 2x1 + x2
sujeto a 5x1 + 8x2 ≤ 68
x1 − x2 ≤ 2
x2 ≤ 6
x1, x2 ≥ 0 enteros
( )
x*2
x*1
Problema PR1:
( )
Vemos que la solución es entera, por lo tanto es la mejor solución que podemos
obtener para esta zona. Por esta zona no seguimos buscando mejores soluciones.
Problema PR2:
( )
Debemos seguir buscando, ya que puede haber una solución que siendo mejor
que 16 puede ser peor que 16.2. Añadimos nuevas restricciones:
Problema PR2.2:
Problema PR2.1:
( )
Cualquier otra solución que se obtenga por este camino será peor que la solución
del PR1 (z=16), por lo que este nodo también es terminal.
PR
𝑋 ( ) 𝑍
x2
PR1 PR2
x2 ≤ 4 5 x2 ≥ 5
𝑋 ( ) 𝑍 4 𝑋 ( ) 𝑍
Solución entera.
Nodo Terminal. x1
x2
PR2.1 5
x1 ≤ 5
4 PR2.2
𝑋 ( ) 𝑍
x1 ≥ 6
Nodo Terminal. Infactible.
x1 Nodo Terminal.
5 6
A
New York Chicago Los Ángeles Boston
Memphis 8 13 25 28
Desde
Denver 15 12 26 25
New York 0 6 14 16
Chicago 6 0 14 16
SOLUCIÓN:
A Oferta
New York Chicago Los Ángeles Boston
Memphis 8 13 25 28 150
Desde
Denver 15 12 26 25 200
New York 0 6 14 16
Chicago 6 0 14 16
350
Demanda 120 120
240
A
Oferta
New Los
Chicago Boston Ficticio
York Ángeles
Memphis 8 13 25 28 0 150
Desde
Denver 15 12 26 25 0 200
New York 0 6 14 16 0 0+350
Chicago 6 0 14 16 0 0+350
350
Demanda 0+350 0+350 120 120 110
350
Penalizaciones
Penalizaciones 6-0=6 6-0=6 14-14=0 16-16=0 0-0=0 1ª
1ª N.Y. Ch. L.A. B. F.
8-0=8 M. 8 13 25 28 0
12-0=12 D. 15 12 26 25 0
0-0=0 N.Y. 0 6 14 16 0
0-0=0 Ch. 6 0 14 16 0
Penalizaciones
Penalizaciones 6 6 0 0 0 1ª
1ª N.Y. Ch. L.A. B. F.
8 13 25 28 0
8 M. 150
15 12 26 25 0 B
12 D. 200
110
0 6 14 16 0
0 N.Y. 350
6 0 14 16 0
0 Ch. 350
350 350 120 120 110
Penalizaciones
Penalizaciones 6 6 0 0 0 1ª
1ª N.Y. Ch. L.A. B. F.
8 13 25 28 0
8 M. 150
15 12 26 25 0 B
12 D. 200
110
0 6 14 16 0
0 N.Y. 350
6 0 14 16 0
0 Ch. 350
350 350 120 120 110
Penalizaciones
Penalizaciones 6 6 0 0 0 1ª
1ª N.Y. Ch. L.A. B. F.
8 13 25 28 0
8 M. 150
15 12 26 25 0 B 200-
12 D. 110=
110 90
0 6 14 16 0
0 N.Y. 350
6 0 14 16 0
0 Ch. 350
110-
350 350 120 120 110=
0
Penalizaciones
6-0=6 6-0=6 14-14=0 16-16=0 --- 2ª
Penalizaciones 6 6 0 0 0 1ª
2ª 1ª N.Y. Ch. L.A. B. F.
8 13 25 28 0
13-8=5 8 M. 150
15 12 26 25 0 B1
15-12=3 12 D. 90
110
0 B2 6 14 16 0 350-350=
6-0=6 0 N.Y. 0
350
6 0 14 16 0
6-0=6 0 Ch. 350
350-350= 0
0 350 120 120
3ª asignación:
Penalizaciones
--- 6-0=6 14-14=0 16-16=0 3ª
6 6 0 0 --- 2ª
Penalizaciones 6 6 0 0 0 1ª
3ª 2ª 1ª N.Y. Ch. L.A. B. F.
8 13 25 28 0
25-13=12 5 8 M. 150
15 12 26 25 0 B
25-12=13 3 12 D. 90
110
0 B2 6 14 16 0
14-6=8 6 0 N.Y. 0
350
6 0 B3 14 16 0 350-350=
14-0=14 6 0 Ch. 0
350
350-350= 0
0 0 120 120
4ª asignación:
Penalizaciones
--- --- 14-14=0 16-16=0 --- 4ª
--- 12 11 9 3ª
6 6 0 0 --- 2ª
Penalizaciones 6 6 0 0 0 1ª
4ª 3ª 2ª 1ª N.Y. Ch. L.A. B. F.
8 13 25 B4 28 0 150-120=
28-25=3 12 5 8 M. 30
120
15 12 26 25 0 B
26-25=1 13 3 12 D. 90
110
0 B 6 14 16 0
16-14=2 --- 6 0 N.Y. 0
350
6 0 B 14 16 0
16-14=2 14 6 0 Ch. 0
350
120-120= 0
0 0 0 120
5ª asignación.
Penalizaciones
--- --- 1 3 --- 4ª
--- 12 11 9 3ª
6 6 0 0 --- 2ª
Penalizaciones 6 6 0 0 0 1ª
4ª 3ª 2ª 1ª N.Y. Ch. L.A. B. F.
8 13 25 B4 28 0
3 12 5 8 M. 30
120
15 12 26 25 0 B
1 13 3 12 D. 90
110
0 B 6 14 16 0
--- --- 6 0 N.Y. 0
350
6 0 B 14 16 B5 0 0-0=
--- 14 6 0 Ch. 0
350 0
120-0= 0
0 0 0 120
6ª asignación:
Penalizaciones
--- --- 1 3 --- 4ª
--- 12 11 9 3ª
6 6 0 0 --- 2ª
Penalizaciones 6 6 0 0 0 1ª
4ª 3ª 2ª 1ª N.Y. Ch. L.A. B. F.
8 13 25 B4 28 0
3 12 5 8 M. 30
120
15 12 26 25 0 B
1 13 3 12 D. 90
110
0 B 6 14 16 B6 0 0-0=
--- --- 6 0 N.Y. 0
350 0
6 0 B 14 16 B5 0 0-0=
--- 14 6 0 Ch. 0
350 0
120-0= 0
0 0 0 120
7ª asignación:
Penalizaciones
--- --- 1 3 --- 4ª
--- 12 11 9 3ª
6 6 0 0 --- 2ª
Penalizaciones 6 6 0 0 0 1ª
4ª 3ª 2ª 1ª N.Y. Ch. L.A. B. F.
8 13 25 B4 28 0
3 12 5 8 M. 30
120
15 12 26 25 B7 0 B 90-90=
1 13 3 12 D. 0
90 110
0 B 6 14 16 B6 0 0-0=
--- --- 6 0 N.Y. 0
350 0
6 0 B 14 16 B5 0 0-0=
--- 14 6 0 Ch. 0
350 0
120-90= 0
0 0 0 30
Penalizaciones
--- --- 1 3 --- 4ª
--- 12 11 9 3ª
6 6 0 0 --- 2ª
Penalizaciones 6 6 0 0 0 1ª
4ª 3ª 2ª 1ª N.Y. Ch. L.A. B. F.
8 13 25 B4 28 B8 0 30-30=
3 12 5 8 M. 0
120 30
15 12 26 25 B7 0 B 90-90=
1 13 3 12 D. 0
90 110
0 B 6 14 16 B6 0 0-0=
--- --- 6 0 N.Y. 0
350 0
6 0 B 14 16 B5 0 0-0=
--- 14 6 0 Ch. 0
350 0
30-30= 0
0 0 0 0
Destinos
N.Y. Ch. L.A. B. F.
8 13 25 B4 28 B8 0
M. 150
120 30
15 12 26 25 B7 0 B1
Orígenes
D. 200
90 110
0 B2 6 14 16 B6 0
N.Y. 0
350 0
6 0 B3 14 16 B5 0
Ch. 0
350 0
0 0 120 120 110
Calcular los ui y los vj, que son las soluciones del sistema de ecuaciones.
Primero asignamos un valor arbitrario a cualquiera de ellas (por ejemplo
u1=0). Esto lo hacemos para las variables o casillas básicas “B”:
Destinos
N.Y. Ch. L.A. B. F.
8 13 25 B4 28 B8 0
M. u1=0
120 30
15 12 26 25 B7 0 B1
Orígenes
D. u2
90 110
0 B2 6 14 16 B6 0
N.Y. u3
350 0
6 0 B3 14 16 B5 0
Ch. u4
350 0
v1 v2 v3 v4 v5
u1=0
u1 + v3 = c13 0 + v3 = 25 v3 = 25
u1 + v4 = c14 0 + v4 = 28 v4 = 28
u2 + v4 = c24 u2 + 28 = 25 u2 = -3
u2 + v5 = c25 -3 + v5 = 0 v5 = 3
u3 + v4 = c34 u3 + 28 = 16 u3 = -12
u3 + v1 = c31 -12 + v1 = 0 v1 = 12
u4 + v4 = c44 u4 + 28= 16 u4 = -12
u4 + v2 = c42 -12 + v2= 0 v2 = 12
u1=0
u1 + v1 = c11 0 + v1 = 8 v1 = 8
u1 + v3 = c13 0 + v3 = 25 v3 = 25
u3 + v1 = c31 u3 + 8 = 0 u3 = -8
u3 + v4 = c34 -8 + v4 = 16 v4 = 24
u2 + v4 = c24 u2 + 24 = 25 u2 = 1
u2 + v5 = c25 1 + v5 = 0 v5 = -1
u4 + v4 = c44 u4 + 24= 16 u4 = -8
u4 + v2 = c42 -8 + v2= 0 v2 = 8
Como existen casillas no básica >0 (x33; x43 la solución no es óptima. Esa decir
como no se cumple el test de optimalidad hay que hacer otra iteración. Entra 3-3 y sale
1-3:
u1=0
u1 + v1 = c11 0 + v1 = 8 v1 = 8
u3 + v1 = c31 u3 + 8 = 0 u3 = -8
u3 + v3 = c33 -8 + v3 = 14 v3 = 22
u3 + v4 = c34 -8 + v4 = 16 v4 = 24
u2 + v4 = c24 u2 + 24 = 25 u2 = 1
u2 + v5 = c25 1 + v5 = 0 v5 = -1
u4 + v4 = c44 u4 + 24= 16 u4 = -8
u4 + v2 = c42 -8 + v2= 0 v2 = 8
Volvemos a realizar el test: para las casillas no básicas, que deben ser todas
menor o igual que cero para que la tabla se óptima:
Página 148 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 3 – Programación Lineal Entera.
Denver Boston 90
Podemos verificar que las demandas solicitadas se han cumplido, pues se han
enviado 120ud. a Los Ángeles y 120ud. a Boston.
Los resultados:
Tiempos
Texto Programa Datos
Disco duro 5 4 4
Memoria 2 1 1
Cinta 10 8 6
SOLUCIÓN:
Tiempos
Oferta/
Texto Programa Datos
Capacidad
Disco duro 5x8=40 4x4=16 4x2=8 200
Memoria 2x8=16 1x4=4 1x2=2 100
Cinta 10x8=80 8x4=32 6x2=12 300
600
Demanda 300 100 100
500
Tiempos
Oferta/
Texto Programa Datos Ficticio
Capacidad
Disco duro 40 16 8 0 200
Memoria 16 4 2 0 100
Cinta 80 32 12 0 300
600
Demanda 300 100 100 100
600
Paso 2: Se elige la fila o columna con mayor penalización y dentro de esa fila o
columna, la casilla más barata. Esta casilla se hace básica con valor igual al mínimo
entre la oferta y la demanda.
NOTA: Recordemos que para que la tabla resultante sea no degenerada, en caso
de que la oferta y la demanda coincidan se tacha solo una de ellas. La actualización de
la oferta y la demanda sí debe realizarse normalmente
Penalizaciones
40-16=24 16-4=12 8-2=6 0-0=0
40 16 8 0
Penalizaciones
8-0=8 200
16 B1 4 2 0 100-100=
2-0=2
100 0
80 32 12 0
12-0=12 300
300-100= 600
200 100 100 100
600
2ª asignación:
Penalizaciones
80-40=40 32-16=16 12-8=4 0-0=0
24 12 6 0
40 B2ª 16 8 0 200-200=
Penalizaciones
8-0=8 8
200 0
16 B1ª 4 2 0
--- 2 0
100
80 32 12 0
12-0=12 12 300
200-200= 600
0 100 100 100
600
3ª asignación:
Penalizaciones
--- 32-16=16 12-8=4 0-0=0
40 16 4 0
24 12 6 0
40 B2ª 16 B3ª 8 0 0-0=
Penalizaciones
8-0=8 8 8
200 0 0
16 B1ª 4 2 0
--- --- 2 0
100
80 32 12 0
12-0=12 12 12 300
100-0= 600
0 100 100 100 600
4ª asignación:
Penalizaciones
--- 32 12-8=4 0-0=0
--- 16 4 0
40 16 4 0
24 12 6 0
40 B2ª 16 B3ª 8 0
Penalizaciones
8-0=8 8 8 8 0
200 0
16 B1ª 4 2 0
--- --- --- 2 0
100
80 32 B4ª 12 0 300-100=
12-0=12 12 12 12
100 200
100-100= 600
0 0 100 100
600
5ª Asignación:
Penalizaciones
--- --- 12-8=4 0-0=0
--- 32 4 0
--- 16 4 0
40 16 4 0
24 12 6 0
40 B2ª 16 B3ª 8 0
Penalizaciones
8-0=8 8 8 8 8 0
200 0
16 B1ª 4 2 0
--- --- --- --- 2 0
100
80 32 B4ª 12 0 B5ª 200-100=
12-0=12 12 12 12 12 100
100 100
100-100= 600
0 0 100 0 600
6ª Asignación:
Penalizaciones
--- --- 12-8=4 ---
--- --- 4 0
--- 32 4 0
--- 16 4 0
40 16 4 0
24 12 6 0
40 B2ª 16 B3ª 8 0
Penalizaciones
8 8 8 8 8 8 0
200 0
16 B1ª 4 2 0
--- --- --- --- --- 2 0
100
80 32 B4ª 12 B6ª 0 B5ª 100-100=
12 12 12 12 12 12 0
100 100 100
100-100= 600
0 0 0 0
600
Calcular los ui y los vj, que son las soluciones del sistema de ecuaciones.
Primero asignamos un valor arbitrario a cualquiera de ellas (por ejemplo
u1=0). Esto lo hacemos para las variables o casillas básicas “B”:
40 B2ª 16 B3ª 8 0
200 0
16 B1ª 4 2 0
100
80 32 B4ª 12 B6ª 0 B5ª
100 100 100
u1=0
u1 + v1 = c11 0 + v1 = 40 v1 = 40
u1 + v2 = c12 0 + v2 = 16 v2 = 16
u2 + v1 = c21 u2 + 40 = 16 u2 = -24
u3 + v2 = c32 u3 + 16 = 32 u3 = 16
u3 + v3 = c33 16 + v3 = 12 v3 = -4
u3 + v4 = c34 16 + v4 = 0 v4 = -16
Los resultados:
Destino
Nodo D1 D2 D3 Gb.
N1 10 5 10 30
N2 2 5 10 23
N3 4 5 3 15
Capacidad 32 25 29
SOLUCIÓN:
Destino
Nodo D1 D2 D3 Gb.
N1 10 5 10 30
N2 2 5 10 23
N3 4 5 3 15
Nficticio 0 0 0 18
Capacidad 32 25 29
Paso 2: Se elige la fila o columna con mayor penalización y dentro de esa fila o
columna, la casilla más barata. Esta casilla se hace básica con valor igual al mínimo
entre la oferta y la demanda.
Penalizaciones
Penalizaciones 2-0=2 5-0=5 3-0=3 Gb.
10-5=5 10 5 10 30
5-2=3 2 5 10 23
4-3=1 4 5 3 15
0-0=0 0 0 0 18
Capacidad 32 25 29
La fila o columna con mayor penalización son fila 1ª y columna 2ª (5). De esas
dos elegimos la que tenga un coste menor. En este caso la columna 2ª tiene una casilla
con coste 0 (fila 4ª). Luego la 1ª celda a asignar es la columna 2ª-fila 4ª. Le asignamos
el mínimo entre la oferta y la demanda [min (25;18)=18]. Luego podemos tachar la fila
3ª. Volvemos a calcular las penalizaciones:
Penalizaciones
4-2=2 5-5=0 10-3=7
Penalizaciones 2-0=2 5-0=5 3-0=3 Gb.
10 5 10
10-5=5 10-5=5 30
2 5 10
5-2=3 5-2=3 23
4 5 3
4-3=1 4-3=1 15
0 0 0
--- 0-0=0 18-18=0
18
Capacidad 32 25-18=7 29
Penalizaciones
Página 159 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 3 – Programación Lineal Entera.
La siguiente asignación será en la celda: columna 1ª-fila 2ª. Pues tiene la mayor
penalización y el menor coste. Asignamos el mínimo entre oferta y demanda
[min(23;32)=23] Tachamos la 2ª fila. Volvemos a calcular penalizaciones:
Penalizaciones
10 5 10
10-2=8 5-5=0 10-10=0
4-2=2 5-5=0 10-3=7
Penalizaciones 2-0=2 5-0=5 3-0=3 Gb.
10 5 10
10-5=5 10-5=5 10-5=5 10-5=5 30
2 B 5 10
--- 5-2=3 5-2=3 5-2=3 23-23=23
23
4 5 3 B
--- --- 4-3=1 4-3=1 15-15=0
15
0 0 B 0
--- --- --- 0-0=0 0
18
Capacidad 32-23=9 7 14
Ya en realidad solo nos queda una fila (1ª). Luego iremos asignando de menor a
mayor coste. 1º la 2ª fila, el minimo entre 7 y 30.
Penalizaciones
10 5 10
10-2=8 5-5=0 10-10=0
4-2=2 5-5=0 10-3=7
Penalizaciones 2-0=2 5-0=5 3-0=3 Gb.
10 5 10
10-5=5 10-5=5 10-5=5 10-5=5 30-7=23
7
2 B 5 10
--- 5-2=3 5-2=3 5-2=3 23-23=23
23
4 5 3 B
--- --- 4-3=1 4-3=1 15-15=0
15
0 0 B 0
--- --- --- 0-0=0 0
18
Capacidad 9 7-7=0 14
Penalizaciones
10 5 10
10-2=8 5-5=0 10-10=0
4-2=2 5-5=0 10-3=7
Penalizaciones 2-0=2 5-0=5 3-0=3 Gb.
10 5 10
10-5=5 10-5=5 10-5=5 10-5=5 23-14=9
7 14
2 B 5 10
--- 5-2=3 5-2=3 5-2=3 23-23=23
23
4 5 3 B
--- --- 4-3=1 4-3=1 15-15=0
15
0 0 B 0
--- --- --- 0-0=0 0
18
Capacidad 9 0 14-14=0
La ultima asignación:
Penalizaciones
10 5 10
10-2=8 5-5=0 10-10=0
4-2=2 5-5=0 10-3=7
Penalizaciones 2-0=2 5-0=5 3-0=3 Gb.
10 B 5 10 B
10-5=5 10-5=5 10-5=5 10-5=5 9-9=0
9 7 14
2 B 5 10
--- 5-2=3 5-2=3 5-2=3 23-23=23
23
4 5 3 B
--- --- 4-3=1 4-3=1 15-15=0
15
0 0 B 0
--- --- --- 0-0=0 0
18
Capacidad 9-9=0 0 14-14=0
Destino
Nodos D1 D2 D3 Gb.
10 B 5 B 10 B
N1 30
9 7 14
2 B 5 10
N2 15
23
4 5 3 B
N3 30
15
0 0 B 0
Nficticio 15
18
Capacidad 32 25 29
Calcular los ui y los vj, que son las soluciones del sistema de ecuaciones.
Primero asignamos un valor arbitrario a cualquiera de ellas (por ejemplo
u1=0). Esto lo hacemos para las variables o casillas básicas “B”:
Destino
Nodos D1 D2 D3
10 B 5 B 10 B
N1 u1=0
9 7 14
2 B 5 10
N2 u2
23
4 5 3 B
N3 u3
15
0 0 B 0
Nficticio u4
18
v1 v2 v3
u1=0
u1 + v1 = c11 0 + v1 = 10 v1 = 10
u1 + v2 = c12 0 + v2 = 5 v2 = 5
u1 + v3 = c13 0 + v3 = 10 v3 = 10
u2 + v1 = c21 u2 + 10 = 2 u2 = -8
u3 + v3 = c33 u3 + 10 = 3 u3 = -7
u4 + v2 = c42 u4 + 5 = 0 u4 = -5
x22 = u2 + v2 – c22 = -8 + 5 – 5 = -8
x23 = u2 + v3 – c23 = -8 + 10 – 10 = -8
x31 = u3 + v1 – c31 = -7 + 10 – 4 = -1
x32 = u3 + v2 – c32 = -7 + 5 – 5 = -7
x41 = u4 + v1 – c41 = -5 + 10 – 0 = 5
x43 = u4 + v3 – c43 = -5 + 10 – 0 = 5
Destino
Nodos D1 D2 D3
10 B 5 B 10 B
N1 u1=0
9 7 + 14 -
2 B 5 10
N2 u2=-8
23 -8 -8
4 5 3 B
N3 u3=-7
-1 -7 15
0 0 B 0
Nficticio u4=-5
5 18 - 5 +
v1=10 v2=5 v3=10
Destino
Nodos D1 D2 D3
10 B 5 B 10
N1 u1=0
9 14+7=21 + 14-14=0 -
2 B 5 10
N2 u2=-8
23 -8 -8
4 5 3 B
N3 u3=-7
-1 -7 15
0 0 B 0 B
Nficticio u4=-5
5 18-14=4 - 5 +
v1=10 v2=5 v3=10
u1=0
u1 + v1 = c11 0 + v1 = 10 v1 = 10
u1 + v2 = c12 0 + v2 = 5 v2 = 5
u2 + v1 = c21 u2 + 10 = 2 u2 = -8
u4 + v2 = c42 u4 + 5 = 0 u4 = -5
u4 + v3 = c43 -5 + v3 = 0 v3 = 5
u3 + v3 = c33 u3 + 5 = 3 u3 = -2
x13 = u1 + v3 – c13 = 0 + 5 – 10 = -5
x22 = u2 + v2 – c22 = -8 + 5 – 5 = -8
x23 = u2 + v3 – c23 = -8 + 5 – 10 = -13
x31 = u3 + v1 – c31 = -2 + 10 – 4 = 4
x32 = u3 + v2 – c32 = -2 + 5 – 5 = -2
x41 = u4 + v1 – c41 = -5 + 10 – 0 = 5
Marcar como básica a la casilla que entra “B” y desmarcar como básica
la casilla del ciclo que haya quedado con valor nulo.
Destino
Nodos D1 D2 D3
10 B 5 B 10
N1 u1=0
9-4=5 - 21+4=25 + 14-14=0
2 B 5 10
N2 u2=-8
23 -8 -8
4 5 3 B
N3 u3=-2
-1 -7 15
0 B 0 0 B
Nficticio u4=-5
5 + 4-4=0 - 5
v1=10 v2=5 v3=5
u1=0
u1 + v1 = c11 0 + v1 = 10 v1 = 10
u1 + v2 = c12 0 + v2 = 5 v2 = 5
u2 + v1 = c21 u2 + 10 = 2 u2 = -8
Página 165 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 3 – Programación Lineal Entera.
u4 + v1 = c41 u4 + 10 = 0 u4 = -10
u4 + v3 = c43 -10 + v3 = 0 v3 = 10
u3 + v3 = c33 u3 + 10 = 3 u3 = -7
x13 = u1 + v3 – c13 = 0 + 10 – 10 = 0
x22 = u2 + v2 – c22 = -8 + 5 – 5 = -8
x23 = u2 + v3 – c23 = -8 + 10 – 10 = -8
x31 = u3 + v1 – c31 = -7 + 10 – 4 = -1
x32 = u3 + v2 – c32 = -7 + 5 – 5 = -7
x42 = u4 + v2 – c42 = -10 + 5 – 0 = -5
Comprobamos que:
Destinos
Nodos D1 D2 D3
10 B 5 B 10
N1
5 25
2 B 5 10
N2
23
4 5 3 B
N3
15
0 B 0 0 B
Nficticio
5 5
5Gb. Desde N1 a D1
25Gb. Desde N1 a D2
23Gb. Desde N2 a D1
15Gb. Desde N3 a D3
5+25+23+15=30+23+15=68
Apartado b)
Destino
Nodos D1 D2 D3
10 B 5 B 10
N1 u1=0
5 25 0
2 B 5 10
N2 u2=-8
23 -8 -8
4 5 3 B
N3 u3=-7
-1 -7 15
0 B 0 0 B
Nficticio u4=-10
5 0 5
v1=10 v2=5 v3=5
Destino
Nodos D1 D2 D3
10 B 5 B 10
N1 u1=0
5 25 0
2 B 5 10
N2 u2=-8
23 -8 -8
4x2=8 5x2=10 3x2=6 B
N3 u3=-4
-1 -7 15
0 B 0 0 B
Nficticio u4=-10
5 0 5
v1=10 v2=5 v3=5
u1=0
u1 + v1 = c11 0 + v1 = 10 v1 = 10
u1 + v2 = c12 0 + v2 = 5 v2 = 5
u2 + v1 = c21 u2 + 10 = 2 u2 = -8
u4 + v1 = c41 u4 + 10 = 0 u4 = -10
u4 + v3 = c43 -10 + v3 = 0 v3 = 10
u3 + v3 = c33 u3 + 10 = 6 u3 = -4
x13 = u1 + v3 – c13 = 0 + 10 – 10 = 0
x22 = u2 + v2 – c22 = -8 + 5 – 5 = -8
x23 = u2 + v3 – c23 = -8 + 10 – 10 = -8
x31 = u3 + v1 – c31 = -4 + 10 – 8 = -2
x32 = u3 + v2 – c32 = -4 + 5 – 10 = -9
x42 = u4 + v2 – c42 = -10 + 5 – 0 = -5
Página 167 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Tema 3 – Programación Lineal Entera.
5Gb. Desde N1 a D1
25Gb. Desde N1 a D2
23Gb. Desde N2 a D1
15Gb. Desde N3 a D3
Apartado c)
2) Encuadrar ceros.
5 0 5
0 3 8
1 2 0
2.b) Tachar los ceros de la fila y columna del cero encuadrado. Como no
existen otros ceros en cada fila que hemos encuadrado el cero, no
tenemos que tachar nada.
2.c) Repetir los dos pasos anteriores mientras queden ceros libres.
30Gb. Desde N1 a D2
23Gb. Desde N2 a D1
15Gb. Desde N3 a D3
PROBLEMAS DE EXÁMENES
EJERCICIO: ( 2º Problema del examen de Febrero 2011)
La siguiente tabla muestra los costos de transporte por Tm entre las plantas y la
cantidad de residuos a recoger:
SOLUCIÓN:
Calculamos los costes totales por cada planta, sumando a los costes de transporte
de las plantas de tratamiento los costes del propio tratamiento de destrucción.
Destinos
Ofertas/
CT1 CT2 PT1 PT2 PT3
Capacidad
12+3= 9+4= 10+5= 50+280=
CT1 0 8 15 13 15 330
12+1= 9+2= 10+1= 40+280=
CT2 2 0 13 11 11 320
Orígenes
9+7= 10+4=
CR1 7 4 M 16 14 80
12+2= 10+10=
CR2 9 2 14 M 20 30
12+8= 9+12= 10+10=
CR3 5 1 20 21 20 60
DF 0 0 0 0 0 20
0+280= 0+280= 280
Demandas 280 280 110 80 90
280
Quedando la tabla:
Destinos
Ofertas/
CT1 CT2 PT1 PT2 PT3
Capacidad
CT1 0 8 15 13 15 330
CT2 2 0 13 11 11 320
Orígenes
CR1 7 4 M 16 14 80
CR2 9 2 14 M 20 30
CR3 5 1 20 21 20 60
DF 0 0 0 0 0 20
280
Demandas 280 280 110 80 90
280
1ª asignación:
Penalizaciones
1ª 0-0=0 0-0=0 13-0=13 11-0=11 11-0=11 1ª
0 8 15 13 15
8-0=8 330
2 0 13 11 11
2-0=2 320
Penalizaciones
7 4 M 16 14
7-4=3 80
9 2 14 M 20
9-2=7 30
5 1 20 21 20
5-1=4 60
0 0 0 B1 0 0
0-0=0 20-20=0
20
110-20=
280 280 90 80 90
2ª asignación:
Penalizaciones
2-0=2 1-0=1 14-13=1 13-11=2 14-11=3 2ª
2ª 1ª 0 0 13 11 11 1ª
0 B2 8 15 13 15 330-280=
8-0=8 8 50
280
2 0 13 11 11
2-0=2 2 320
Penalizaciones
7 4 M 16 14
7-4=3 3 80
9 2 14 M 20
9-2=7 7 30
5 1 20 21 20
5-1=4 4 60
0 0 0 B1 0 0
--- 0 0
20
280-280=
0 280 90 80 90
3ª Asignación:
Penalizaciones
--- 1-0=1 14-13=1 13-11=2 14-11=3 3ª
2 1 1 2 3 2ª
3ª 2ª 1ª 0 0 13 11 11 1ª
0 B2 8 15 13 15
13-8=5 8 8 50
280
2 0 13 11 11
11-0=11 2 2 320
Penalizaciones
7 4 M 16 14
14-4=10 3 3 80
9 2 14 M 20
14-2=12 7 7 30
5 1 B3 20 21 20 60-60=
20-1=19 4 4 0
60
0 0 0 B1 0 0
--- --- 0 0
20
280-60=
0 220 90 80 90
4ª Asignación:
Penalizaciones
--- 2-0=2 14-13=1 13-11=2 14-11=3 4ª
--- 1 1 2 3 3ª
2 1 1 2 3 2ª
4ª 3ª 2ª 1ª 0 0 13 11 11 1ª
0 B2 8 15 13 15
13-8=5 5 8 8 50
280
2 0 13 11 11
11-0=11 11 2 2 320
Penalizaciones
7 4 M 16 14
14-4=10 10 3 3 80
9 2 B4 14 M 20 30-30=
14-2=12 12 7 7 0
30
5 1 B3 20 21 20
--- 19 4 4 0
60
0 0 0 B1 0 0
--- --- --- 0 0
20
220-30=
0 190 90 80 90
5ª Asignación:
Penalizaciones
--- 4-0=4 15-13=2 13-11=2 14-11=3 5ª
--- 2 1 2 3 4ª
--- 1 1 2 3 3ª
2 1 1 2 3 2ª
5ª 4ª 3ª 2ª 1ª 0 0 13 11 11 1ª
0 B2 8 15 13 15
13-8=5 5 5 8 8 50
280
2 0 B5 13 11 11 320-190=
11-0=11 11 11 2 2
Penalizaciones
190 130
7 4 M 16 14
14-4=10 10 10 3 3 80
9 2 B4 14 M 20
--- 12 12 7 7 0
30
5 1 B3 20 21 20
--- --- 19 4 4 0
60
0 0 0 B1 0 0
--- --- --- --- 0 0
20
190-190=
0 0 90 80 90
6ª Asignación:
Penalizaciones
--- --- 15-13=2 13-11=2 14-11=3 6ª
--- 4 2 2 3 5ª
--- 2 1 2 3 4ª
--- 1 1 2 3 3ª
2 1 1 2 3 2ª
6ª 5ª 4ª 3ª 2ª 1ª 0 0 13 11 11 1ª
0 B2 8 15 13 15
15-13=2 5 5 5 8 8 50
280
2 0 B5 13 11 11 B6 130-90=
11-11=0 11 11 11 2 2
Penalizaciones
190 90 40
7 4 M 16 14
16-14=2 10 10 10 3 3 80
9 2 B4 14 M 20
--- --- 12 12 7 7 0
30
5 1 B3 20 21 20
--- --- --- 19 4 4 0
60
0 0 0 B1 0 0
--- --- --- --- --- 0 0
20
90-90=
0 0 90 80 0
7ª asignación:
NOTA: Recordemos que para que la tabla resultante sea no degenerada, en caso
de que la oferta y la demanda coincidan se tacha solo una de ellas. La actualización de
la oferta y la demanda sí debe realizarse normalmente
Penalizaciones
--- --- 15-13=2 13-11=2 --- 7ª
--- --- 2 2 3 6ª
--- 4 2 2 3 5ª
--- 2 1 2 3 4ª
--- 1 1 2 3 3ª
2 1 1 2 3 2ª
7ª 6ª 5ª 4ª 3ª 2ª 1ª 0 0 13 11 11 1ª
0 B2 8 15 13 15
15-13=2 2 5 5 5 8 8 50
280
2 0 B5 13 11 11 B6
13-11=2 0 11 11 11 2 2 40
Penalizaciones
190 90
7 4 M 16 B7 14 80-80=
M-16 2 10 10 10 3 3 0
80
9 2 B4 14 M 20
--- --- --- 12 12 7 7 0
30
5 1 B3 20 21 20
--- --- --- --- 19 4 4 0
60
0 0 0 B1 0 0
--- --- --- --- --- --- 0 0
20
80-80=
0 0 90 0 0
8ª Asignación:
Penalizaciones
--- --- 15-13=2 13-11=2 --- 8ª
--- --- 2 2 --- 7ª
--- --- 2 2 3 6ª
--- 4 2 2 3 5ª
--- 2 1 2 3 4ª
--- 1 1 2 3 3ª
2 1 1 2 3 2ª
8ª 7ª 6ª 5ª 4ª 3ª 2ª 1ª 0 0 13 11 11 1ª
0 B2 8 15 13 15
15-13=2 2 2 5 5 5 8 8 50
280
2 0 B5 13 11 B8 11 B6 40-0=
13-11=2 2 0 11 11 11 2 2
Penalizaciones
190 0 90 40
7 4 M 16 B7 14
--- M-16 2 10 10 10 3 3 0
80
9 2 B4 14 M 20
--- --- --- --- 12 12 7 7 0
30
5 1 B3 20 21 20
--- --- --- --- --- 19 4 4 0
60
0 0 0 B1 0 0
--- --- --- --- --- --- --- 0 0
20
0-0=
0 0 90 0 0
9ª Asignación:
Penalizaciones
--- --- 15-13=2 13-11=2 --- 8ª
--- --- 2 2 --- 7ª
--- --- 2 2 3 6ª
--- 4 2 2 3 5ª
--- 2 1 2 3 4ª
--- 1 1 2 3 3ª
2 1 1 2 3 2ª
8ª 7ª 6ª 5ª 4ª 3ª 2ª 1ª 0 0 13 11 11 1ª
0 B2 8 15 13 15
15-13=2 2 2 5 5 5 8 8 50
280
2 0 B5 13 B9 11 B8 11 B6 40-40=
13-11=2 2 0 11 11 11 2 2
Penalizaciones
190 40 0 90 0
7 4 M 16 B7 14
--- M-16 2 10 10 10 3 3 0
80
9 2 B4 14 M 20
--- --- --- --- 12 12 7 7 0
30
5 1 B3 20 21 20
--- --- --- --- --- 19 4 4 0
60
0 0 0 B1 0 0
--- --- --- --- --- --- --- 0 0
20
90-40= 0-0=
0 0 50 0 0
Penalizaciones
--- --- 15-13=2 13-11=2 --- 8ª
--- --- 2 2 --- 7ª
--- --- 2 2 3 6ª
--- 4 2 2 3 5ª
--- 2 1 2 3 4ª
--- 1 1 2 3 3ª
2 1 1 2 3 2ª
8ª 7ª 6ª 5ª 4ª 3ª 2ª 1ª 0 0 13 11 11 1ª
0 B2 8 15 B10 13 15
15-13=2 2 2 5 5 5 8 8 50
280 50
2 0 B5 13 B9 11 B8 11 B6 40-40=
13-11=2 2 0 11 11 11 2 2
Penalizaciones
190 40 0 90 0
7 4 M 16 B7 14
--- M-16 2 10 10 10 3 3 0
80
9 2 B4 14 M 20
--- --- --- --- 12 12 7 7 0
30
5 1 B3 20 21 20
--- --- --- --- --- 19 4 4 0
60
0 0 0 B1 0 0
--- --- --- --- --- --- --- 0 0
20
50-50= 0-0=
0 0 0 0 0
Calcular los ui y los vj, que son las soluciones del sistema de ecuaciones.
Primero asignamos un valor arbitrario a cualquiera de ellas (por ejemplo
u1=0). Esto lo hacemos para las variables o casillas básicas “B”:
Destinos
CT1 CT2 PT1 PT2 PT3
0 B2 8 15 B10 13 15
CT1 u1
280 50
2 0 B5 13 B9 11 B8 11 B6
CT2 u2
190 40 0 90
7 4 M 16 B7 14
Origenes
CR1 u3
80
9 2 B4 14 M 20
CR2 u4
30
5 1 B3 20 21 20
CR3 u5
60
0 0 0 B1 0 0
DF u6
20
v1 v2 v3 v4 v5
u1=0
u1 + v1 = c11 0 + v1 = 0 v1 = 0
u1 + v3 = c13 0 + v3 = 15 v3 = 15
u2 + v3 = c23 u2 + 15 = 13 u2 = -2
u2 + v2 = c22 -2 + v2 = 0 v2 = 2
u2 + v4 = c24 -2 + v4 = 11 v4 = 13
u2 + v5 = c25 -2 + v5 = 11 v5 = 13
u3 + v4 = c34 u3 + 13 = 16 u3 = 3
u4 + v2 = c42 u4 + 2= 2 u4 = 0
u5 + v2 = c52 u5 + 2= 1 u5 = -1
u6 + v3 = c63 u6 + 15 = 0 u6 = -15
Como existen casillas no básicas > 0 (x32 ; x35; x43 ) la solución no es óptima.
Destinos
CT1 CT2 PT1 PT2 PT3
0 B 8 15 B 13 15
CT1 u1
280 50
2 0 B 13 B 11 B 11 B
CT2 190 40 80+0= + 90-80= - u2
80 10
7 4 M 16 B 14
Origenes
CR1 80-80= + u3
0 - 80
9 2 B 14 M 20
CR2 u4
30
5 1 B 20 21 20
CR3 u5
60
0 0 0 B 0 0
DF u6
20
v1 v2 v3 v4 v5
Quedando así:
Destinos
CT1 CT2 PT1 PT2 PT3
0 B 8 15 B 13 15
CT1 u1
280 50
2 0 B 13 B 11 B 11 B
CT2 u2
190 40 80 + 10 -
7 4 M 16 14 B
Origenes
CR1 u3
- 80 +
9 2 B 14 M 20
CR2 u4
30
5 1 B 20 21 20
CR3 u5
60
0 0 0 B 0 0
DF u6
20
v1 v2 v3 v4 v5
u1=0
u1 + v1 = c11 0 + v1 = 0 v1 = 0
u1 + v3 = c13 0 + v3 = 15 v3 = 15
u2 + v3 = c23 u2 + 15 = 13 u2 = -2
u2 + v2 = c22 -2 + v2 = 0 v2 = 2
u2 + v4 = c24 -2 + v4 = 11 v4 = 13
u2 + v5 = c25 -2 + v5 = 11 v5 = 13
u3 + v5 = c35 u3 + 13 = 14 u3 = 1
u4 + v2 = c42 u4 + 2= 2 u4 = 0
u5 + v2 = c52 u5 + 2= 1 u5 = -1
u6 + v3 = c63 u6 + 15 = 0 u6 = -15
Como aún existe una casilla no básicas > 0 (x43 ) la solución no es óptima.
Destinos
CT1 CT2 PT1 PT2 PT3
0 B 8 15 B 13 15
CT1 u1
280 50
2 0 B 13 B 11 B 11 B
CT2 190+30= 40-30= u2
220 + 10 - 80 10
7 4 M 16 14 B
Orígenes
CR1 u3
80
9 2 B 14 M 20
CR2 30-30= u4
0 - 30 +
5 1 B 20 21 20
CR3 u5
60
0 0 0 B 0 0
DF u6
20
v1 v2 v3 v4 v5
Quedando:
Destinos
CT1 CT2 PT1 PT2 PT3
0 B 8 15 B 13 15
CT1 u1
280 50
2 0 B 13 B 11 B 11 B
CT2 u2
220 + 10 - 80 10
7 4 M 16 14 B
Orígenes
CR1 u3
80
9 2 14 B M 20
CR2 u4
- 30 +
5 1 B 20 21 20
CR3 u5
60
0 0 0 B 0 0
DF u6
20
v1 v2 v3 v4 v5
Página 182 de 214
Apuntes de clase Investigación Operativa Ingeniería en Organización Industrial
Problemas de exámenes
u1=0
u1 + v1 = c11 0 + v1 = 0 v1 = 0
u1 + v3 = c13 0 + v3 = 15 v3 = 15
u2 + v3 = c23 u2 + 15 = 13 u2 = -2
u2 + v2 = c22 -2 + v2 = 0 v2 = 2
u2 + v4 = c24 -2 + v4 = 11 v4 = 13
u2 + v5 = c25 -2 + v5 = 11 v5 = 13
u3 + v5 = c35 u3 + 13 = 14 u3 = 1
u4 + v3 = c43 u4 + 15= 14 u4 = -1
u5 + v2 = c52 u5 + 2= 1 u5 = -1
u6 + v3 = c63 u6 + 15 = 0 u6 = -15
Volvemos a realizar el test: para las casillas no básicas, que deben ser todas
menor o igual que cero para que la tabla se óptima:
Destinos
CT1 CT2 PT1 PT2 PT3
0 B 8 15 B 13 15
CT1 u1
280 50
2 0 B 13 B 11 B 11 B
CT2 u2
220 10 80 10
7 4 M 16 14 B
Orígenes
CR1 u3
80
9 2 14 B M 20
CR2 u4
30
5 1 B 20 21 20
CR3 u5
60
0 0 0 B 0 0
DF u6
20
v1 v2 v3 v4 v5
CT1 PT1 : 50
CT2 PT1 : 10
CT2 PT2 : 80
CT2 PT3 : 10
CR1 PT3 : 80
CR2 PT1 : 30
CR3 CT2 : 60
max 2x1+3x2-4x3-9x4
s.a x1+x2+x3-3x4≥1
x1+x2+2x3-3x4=2
3x1+2x2+x3-6x4 ≤ 4
x1,x2≥0 ; x3≤ 0 ; x4→Libre
SOLUCIÓN:
Recordemos que:
Hay que tener en cuenta que las variables libres se notifican en el programa
mediante la instrucción free. También para hacer constar que la variable x3 debe ser ≤0
se escribe: -inf<=x3<=0:
( )
b) La variable básica es x2
c) Obtener el rango de variación del coeficiente b2.
Como cabría esperar los resultados no varían, ya que las soluciones iniciales ya
eran enteras:
( )
Destinos
Capacidades
D1 D2 D3 D4
O1 12 9 19 25 21
Orígenes
O2 15 20 10 10 22
O3 15 15 22 21 16
O4 21 25 12 15 16
O5 24 5 10 12 11
Demandas 35 24 28 17
SOLUCIÓN:
Demanda Total=35+24+28+17=104
Capacidad Total=21+22+16+16+11=86
Destinos
Capacidades
D1 D2 D3 D4
O1 12 9 19 25 21
O2 15 20 10 10 22
Orígenes
O3 15 15 22 21 16
O4 21 25 12 15 16
O5 24 5 10 12 11
OF 0 0 0 0 18
104
Demandas 35 24 28 17 104
Una vez igualadas las capacidades totales con las demandas totales podremos
introducir los datos en el programa. En primer lugar hacer constar que para la resolución
de problemas de transporte o asignación se utiliza el lenguaje XLI MathProg. Para ello
deberemos marcar en View-XLI_MathProg 4.41:
Una vez introducido los datos, pinchamos sobre el triángulo verde (F9-Solve)
para obtener los resultados. Estos aparecen en Result-Objetive:
Aquí observamos los posibles rangos de variación de los costes con origen 3
para que la tabla óptima no varíe:
O3 a D1 entre 12 y 18.
O3 a D2 entre 12 y +∞.
O3 a D3 entre 15 y +∞.
O3 a D4 entre 15 y +∞.
Destinos
Capacidades
D1 D2 D3 D4
O1 12 9 19 25 21
Orígenes
O2 15 20 10 10 22
O3 15 15 22 21 16
O4 21 25 12 15 16
O5 24 5 10 12 11
86
Demandas 35 24 28 17
104
Destinos
Capacidades
D1 D2 D3 D4
O1 12 9 19 25 21+18=39
Orígenes
O2 15 20 10 10 22
O3 15 15 22 21 16
O4 21 25 12 15 16
O5 24 5 10 12 11
104
Demandas 35 24 28 17
104
Destinos
Capacidades
D1 D2 D3 D4
O1 12 9 19 25 21
Orígenes
O2 15 20 10 10 22
O3 15 15 22 21 16
O4 21 25 12 15 16
O5 24 5 10 12 11
Demandas 35 24 28 17
Los resultados:
Es decir:
O1 con D1
O2 con D4
O4 con D3
O5 con D2
El retorno neto global estimado para cada tipo de proyecto es del 150 %, 200 %
y 300 % de la inversión inicial. El total de la inversión en proyectos a medio y largo
plazo no puede superar el 50 % de la disponibilidad. Así mismo, la cantidad invertida en
cada tipo de proyecto no debe ser inferior al 20 %.
SOLUCIÓN:
Restricciones:
Función a maximizar:
Apartado a)
1,5 2 3 0 0 0 -M 0 -M 0 -M
x1 x2 x3 s1 s2 s3 z3 s4 z4 s5 z5
0 s1 1 1 1 1 0 0 0 0 0 0 0 30 30/1=30
0 s2 0 1 1 0 1 0 0 0 0 0 0 15 15/1=15
-M z3 1 0 0 0 0 -1 1 0 0 0 0 6
-M z4 0 1 0 0 0 0 0 -1 1 0 0 6
-M z5 0 0 1 0 0 0 0 0 0 -1 1 6 6/1=6 sale z5
min(30;15;6)=6
1,5 2 3 0 0 0 -M 0 -M 0 -M
x1 x2 x3 s1 s2 s3 z3 s4 z4 s5 z5
0 s1 1 1 0 1 0 0 0 0 0 1 -1 24 24/1=24
0 s2 0 1 0 0 1 0 0 0 0 1 -1 9 9/1=9
-M z3 1 0 0 0 0 -1 1 0 0 0 0 6
-M z4 0 1 0 0 0 0 0 -1 1 0 0 6 6/1=6 sale z4
min(24;9;6)=6
3 x3 0 0 1 0 0 0 0 0 0 -1 1 6
-M-1,5 -M-2 0 0 0 -M 0 M 0 -3 3+M 18-12M
Entra
x2
1,5 2 3 0 0 0 -M 0 -M 0 -M
x1 x2 x3 s1 s2 s3 z3 s4 z4 s5 z5
0 s1 1 0 0 1 0 0 0 1 1 1 -1 18 18/1=18
0 s2 0 0 0 0 1 0 0 1 -1 1 -1 3
sale
-M z3 1 0 0 0 0 -1 1 0 0 0 0 6 6/1=6 z3
min(15;6)=6
2 x2 0 1 0 0 0 0 0 -1 1 0 0 6
3 x3 0 0 1 0 0 0 0 0 0 -1 1 6
-M-1,5 0 0 0 3 M 0 -2 2+M -3 3+M 30-6M
Entra
x1
1,5 2 3 0 0 0 -M 0 -M 0 -M
x1 x2 x3 s1 s2 s3 z3 s4 z4 s5 z5
0 s1 0 0 0 1 0 1 -1 1 1 1 -1 12 12/1=12
sale
0 s2 0 0 0 0 1 0 0 1 -1 1 -1 3 3/1=3
s2
1,5 x1 1 0 0 0 0 -1 1 0 0 0 0 6
2 x2 0 1 0 0 0 0 0 -1 1 0 0 6
3 x3 0 0 1 0 0 0 0 0 0 -1 1 6
0 0 0 0 0 -1,5 1,5+M -2 2+M -3 3+M 39
Entra
s5
1,5 2 3 0 0 0 -M 0 -M 0 -M
x1 x2 x3 s1 s2 s3 z3 s4 z4 s5 z5
sale
0 s1 0 0 0 1 -1 1 -1 0 2 0 0 9
s1
0 s5 0 0 0 0 1 0 0 1 -1 1 -1 3
1,5 x1 1 0 0 0 0 -1 1 0 0 0 0 6
2 x2 0 1 0 0 0 0 0 -1 1 0 0 6
3 x3 0 0 1 0 1 0 0 1 -1 0 0 9
0 0 0 0 3 -1,5 1,5+M 1 -1+M 0 +M 48
Entra s3
1,5 2 3 0 0 0 -M 0 -M 0 -M
x1 x2 x3 s1 s2 s3 z3 s4 z4 s5 z5
0 s3 0 0 0 1 -1 1 -1 0 2 0 0 9
0 s5 0 0 0 0 1 0 0 1 -1 1 -1 3
1,5 x1 1 0 0 1 -1 0 0 0 2 0 0 15
2 x2 0 1 0 0 0 0 0 -1 1 0 0 6
3 x3 0 0 1 0 1 0 0 1 -1 0 0 9
0 0 0 1,5 1,5 0 +M 1 2+M 0 +M 61,5
( )
El P.P.L. quedaría:
1,5 2 3 0 0 0 -M 0 -M 0 -M
x1 x2 x3 s1 s2 s3 z3 s4 z4 s5 z5
0 s3 0 0 0 1 -1 1 -1 0 2 0 0 9
0 s5 0 0 0 0 1 0 0 1 -1 1 -1 3
1,5 x1 1 0 0 1 -1 0 0 0 2 0 0 15
2 x2 0 1 0 0 0 0 0 -1 1 0 0 6
3 x3 0 0 1 0 1 0 0 1 -1 0 0 9
0 0 0 1,5 1,5 0 +M 1 2+M 0 +M 61,5
Recalculamos el renglón Z:
Ahora si todos los elementos de la fila Z son ≥0, luego la solución es óptima. La nueva
solución será:
( )
Es decir en este apartado nos preguntan una solución en las que las variables
x1,x2,x3 sean enteras y múltiplos de 5. Además de que cumpla todas las restricciones.
A partir de la solución del problema relajado podríamos buscar una solución con
valores múltiplo de 5:
La siguiente tabla muestra los costos por Tm. de transportar el aceite en cada
uno de los trayectos, la demanda de aceite en cada punto en el próximo mes y la
disponibilidad en cada uno de los almacenes.
PV2 PV3
PV1 21 16
PV2 18
SOLUCIÓN:
En primer lugar verificamos que la oferta total coincida con la demanda total:
Como Demanda total es menor que la oferta total deberemos crear un destino
ficticio con dicha diferencia (400-390=10).
Penalizaciones
Penalizaciones 9-0=9 8-0=8 17-6=11 14-12=2 13-8=5 8-0=8 0-0=0 1ª
1ª DC1 DC2 PT PV1 PV2 PV3 DF
0-0=0 DC1 0 16 17 15 13 16 0
0-0=0 DC2 22 0 17 14 16 0 0
6-0=6 PT 9 8 6 12 8 8 0
Penalizaciones
9-0= 8-0= 17-6= 14-12= 13-8= 8-0= 0-0= 1ª
Penalizaciones 9 8 11 2 5 8 0
1ª DF
←bilidad
DC1 DC2 PT PV1 PV2 PV3 Disponi
0 16 17 15 13 16 0 190
0-0=0 DC1
22 0 17 14 16 0 0 210
0-0=0 DC2
9 8 6 B 12 8 8 0 400
6-0=6 PT
400
Demandas→ 110 80 400 90 60 50 10
Penalizaciones
9-0= 8-0= 17-6= 14-12= 13-8= 8-0= 0-0= 1ª
Penalizaciones 9 8 11 2 5 8 0
1ª DF
←bilidad
Disponi
DC1 DC2 PT PV1 PV2 PV3
0 16 17 15 13 16 0 190
0-0=0 DC1
22 0 17 14 16 0 0 210
0-0=0 DC2
9 8 6 B 12 8 8 0 400
6-0=6 PT
400
Demandas→ 110 80 400 90 60 50 10
Penalizaciones
9-0= 8-0= 17-6= 14-12= 13-8= 8-0= 0-0= 1ª
Penalizaciones 9 8 11 2 5 8 0
1ª
←bilidad
Disponi
DC1 DC2 PT PV1 PV2 PV3 DF
1 1 0 190
0 16 17 15
0-0=0 DC1 3 6
22 0 17 14 16 0 0 210
0-0=0 DC2
9 8 6 B 12 8 8 0 400-400=
6-0=6 PT 0
400
Demandas→ 110 80
400-400=
90 60 50 10
0
Grupo G1 G2 G3
Costo 10 13 17
Mínimo 15 12 4
Máximo 20 15 10
a) Si se dispone de un total de 900 para las actividades del próximo año. ¿Cuál
es la planificación óptima de actividades?
Empresas
Aspirantes
E1 E2 E3
S1 8 15 10 40
S2 9 10 11 29
S3 14 13 11 49
Entrevistas 27 31 21
Empresas
E1 E2 E3
S1 8 15 10
S2 9 10 11
S3 14 13 11