ejercicios programación lineal

Anuncio
UNIVERSIDAD CARLOS III
FACULTAD DE CIENCIAS
SOCIALES Y POLÍTICAS
DEPARTAMENTO DE
ESTADÍSTICA Y
ECONOMETRÍA
DIPLOMATURA DE ESTADÍSTICA
2º CURSO - INVESTIGACIÓN OPERATIVA I
EXAMEN DE 31 DE ENERO DE 2002
ENUNCIADO DE LOS PROBLEMAS
Prof. José Carlos Ayuso Elvira
EXÁMEN DE INVESTIGACIÓN OPERATIVA I
PROGRAMACIÓN LINEAL
31 DE ENERO DE 2002
PROBLEMA I (Un punto) .- Dado el siguiente programa lineal
Min z = 3x1 + 2x2 + 5x3 + x4 - 6x5
s.a.
x1 + x2 + x3 + x4 + x5  12
x4 + x5  4
x1 + x2 - x3
0
6x1 + 3x2 - x3 + x4 - 2x5  0
x1 , x4 , x5  0 ; x2 , x3 sin restricciones
determinar el programa dual.
EXÁMEN DE INVESTIGACIÓN OPERATIVA I
PROGRAMACIÓN LINEAL
31 DE ENERO DE 2002
PROBLEMA II (Un punto).- Resolver gráficamente el programa lineal
Max z  x1  x 2
s.a.
 x1  3  x 2  12
2  x1  x 2  1
2  x1  x 2  16
 x1  2  x 2  2
x1  0 ; x 2  0
EXÁMEN DE INVESTIGACIÓN OPERATIVA I
PROGRAMACIÓN LINEAL
31 DE ENERO DE 2002
PROBLEMA III (Dos puntos) .- Dado el problema lineal
Min z = 20x1 + 28x2
s.a.
4x1 + 3x2  1
9x2  1
x1 , x2  0
determinar su solución mediante el algoritmo del SIMPLEX. Utilizar el método de las
dos fases ante la falta de una solución factible básica inicial.
EXÁMEN DE INVESTIGACIÓN OPERATIVA I
PROGRAMACIÓN LINEAL
31 DE ENERO DE 2002
PROBLEMA IV (Un punto).- Resolver el programa lineal del PROBLEMA III,
es decir:
Min z = 20x1 + 28x2
s.a.
4x1 + 3x2  1
9x2  1
x1 , x2  0
mediante el algoritmo dual.
EXÁMEN DE INVESTIGACIÓN OPERATIVA I
PROGRAMACIÓN LINEAL
31 DE ENERO DE 2002
PROBLEMA V (Tres puntos).- Dado el problema primal expresado a
continuación, determinar su problema dual, resolver el primal mediante el algoritmo
dual (con los cambios de variable necesarios y la simplificación al máximo despejando
precisamente x3 y sustituyendo en el resto del programa) y determinar la solución del
programa dual mediante las relaciones de holgura complementaria.
Min z = 2x1 + 3x2 - 5x3
s.a.
x1 + x2 - x3 + x4  5
2x1 +
x3
4
x2 + x3 + x4 = 6
x1  0 ; x2 , x3  0, x4 no restringida
EXÁMEN DE INVESTIGACIÓN OPERATIVA I
PROGRAMACIÓN LINEAL
31 DE ENERO DE 2002
PROBLEMA VI (Dos puntos) .- Dado el programa lineal
Max z = x1 + x2
s.a.
x1 - x2  - 2
5.x1 - 2.x2  5
x1 , x2  0
describir qué ocurre si tras su resolución nos vemos obligados a añadir la restricción
x2  2
Describir igualmente que ocurre si en vez de la restricción anterior hay que tener
en cuenta la restricción
x1  1
UNIVERSIDAD CARLOS III
FACULTAD DE CIENCIAS
SOCIALES Y POLÍTICAS
DEPARTAMENTO DE
ESTADÍSTICA Y
ECONOMETRÍA
DIPLOMATURA DE ESTADÍSTICA
2º CURSO - INVESTIGACIÓN OPERATIVA I
EXAMEN DE 31 DE ENERO DE 2002
SOLUCIÓN DE LOS PROBLEMAS
Prof. José Carlos Ayuso Elvira
SOLUCIÓN PROBLEMA I
Como el problema planteado es de mínimo, el dual será del tipo Max. Si
denominamos por la letra y las variables duales, entonces las variables y1, y3 e y4 serán
negativas pues las desigualdades correspondientes en el programa primal son del tipo
menor o igual. Por otra parte las restricciones segunda y tercera del dual han de ser del
tipo igualdad pues las variables primales correspondientes no están restringidas,
mientras que las otras tres restricciones duales serán del tipo menor o igual tal como
corresponde a un programa del tipo Max pues las variables primales son positivas o
nulas. En definitiva el programa dual será:
Max w = 12.y1 + 4.y2
s.a.
y1
+ y3 + 6.y4  3
y1
+ y3 + 3.y4 = 2
y1
- y3 - y4 = 5
y1 + y2
+ y4  1
y1 + y2
- 2y4  -6
y1 , y3 , y4  0 ; y2  0
SOLUCIÓN PROBLEMA II
La representación gráfica de nuestro problema, en la que las unidades
correspondientes al eje horizontal son el doble de grandes que las correspondientes al
eje vertical, resulta ser la siguiente:
x2
III
II
F.O.
B
I
C
IV
D
A
x1
La región factible resulta ser la delimitada por los vértices A, B, C y D. La
solución resulta ser el vértice D, si se tiene en cuenta que el sentido creciente de nuestra
función objetivo viene establecido por el vector (1,-1).
El punto D está en la intersección de las restricciones III y IV; en consecuencia
es la solución del sistema
2.x1 + x2 = 16
-x1 + 2.x2 = 2
de donde se obtiene la solución completa del programa lineal puesto que
x1 = 6
x2 = 4
s1 = 6
s2 = 7
s3 = 0
s4 = 0
z=2
SOLUCIÓN PROBLEMA III
El programa lineal no tiene una solución factible básica inicial dado el sentido de
las desigualdades. Para obtener una solución factible básica inicial utilizaremos el
método de las dos fases introduciendo dos variables artificiales p1 y p2 y tratando de
hacer Min z’ = p1 + p2. La tabla simplex de esta Fase I es
Min z’
p1
p2
x1
0
4
0
x2
0
3
9
s1
0
-1
0
s2
0
0
-1
p1
-1
1
0
p2
-1
0
1
SOL
0
1
1
Como la tabla no tiene el formato correcto para aplicar el simplex, pues no son
nulos los coeficientes de las variables básicas en la línea de z, sumamos la segunda y
tercera fila a la primera y obtenemos
Min z’
p1
p2
x1
4
4
0
x2
12
3
9
s1
-1
-1
0
s2
-1
0
-1
p1
0
1
0
p2
0
0
1
SOL
2
1
1
Pivotaremos alrededor del elemento señalado en negrita y en cursiva (notación
que utilizaremos en todo el proceso), lo que nos da la tabla
Min z’
p1
x2
x1
4
4
0
x2
0
0
1
s1
-1
-1
0
s2
1/3
1/3
-1/9
p1
0
1
0
p2
-4/3
-1/3
1/9
SOL
2/3
2/3
1/9
Siguiendo el proceso del algoritmo del simplex obtenemos la tabla
Min z’
x1
x2
x1
0
1
0
x2
0
0
1
s1
s2
0
-1/4
0
0
1/12
-1/9
p1
-1
1/4
0
p2
SOL
-1
0
-1/12 1/6
1/9 1/9
con la que se finaliza la Fase I al obtener una base factible. Recuperamos nuestro
problema sustituyendo en la fila de z’ los coeficientes de la función objetivo original y
obtenemos la tabla
Min z
x1
x2
x1
-20
1
0
x2
-28
0
1
s1
s2
0
-1/4
0
0
1/12
-1/9
SOL
0
1/6
1/9
tabla que no se adapta a los requisitos del simplex en los que debe aparecer un cero en la
línea de z en las variables básicas. Para lograrlo sumamos a esta fila la segunda
multiplicada por 20 y la tercera multiplicada por 28, obteniendo
Min z
x1
x2
x1
0
1
0
x2
0
0
1
s1
-5
-1/4
0
s2
-13/9
1/12
-1/9
SOL
58/9
1/6
1/9
Tabla en la que, siendo la solución factible, ya no se puede pivotar, esto es mejorar la
solución con lo que estamos en el óptimo y ha finalizado el proceso del simplex. La
solución es por tanto
x1 = 1/6
x2 = 1/9
s1 = 0
s2 = 0
z = 58/9
SOLUCIÓN PROBLEMA IV
Para abordar la resolución del PROBLEMA III mediante el algoritmo dual la
tabla inicial sería
Min z
s1
s2
x1
-20
-4
0
x2
-28
-3
-9
s1
0
1
0
s2
0
0
1
SOL
0
-1
-1
tabla que representa una solución básica no factible y sobreoptimal pues los coeficientes
de la línea de z son todos negativos y el problema es de mínimo. Pivotando obtenemos
Min z
x1
s2
x1
0
0
0
x2
-13
3/4
-9
s1
-5
-1/4
0
s2
0
0
1
SOL
5
1/4
-1
s1
-5
-1/4
0
s2
-13/9
1/12
-1/9
SOL
58/9
1/6
1/9
y pivotando nuevamente
Min z
x1
x2
x1
0
1
0
x2
0
0
1
que representa , por supuesto, la misma solución ya calculada.
SOLUCIÓN PROBLEMA V
Si denominamos mediante la letra y a las variables duales, el programa dual
resulta ser directamente
Max w = 5y1 + 4y2 + 6y3
s.a.
y1 + 2y2
2
(pues x1  0)
y1 +
y3  3
-y1 + y2 + y3  -5
y1 +
y3 = 0
(pues x4 es no restringida)
y1  0,
y2  0 (pues la segunda relación del primal es del tipo ),
y3 no restringida (pues la tercera relación del primal es del tipo =)
Para resolver el problema primal mediante el algoritmo dual haremos x1 = -x5 ,
además x4 = x6 - x7, quedando el programa
Min z = -2x5 + 3x2 - 5x3
s.a.
-x5 + x2 - x3 + x6 - x7  5
-2x5 + x3
4
x2 + x3 + x6 - x7 = 6
x5 , x2 , x3 , x6 , x7  0
Para simplificar aún más el problema haremos x3 = 6 - x2 - x6 + x7 , quedando el
problema tras operar y haciendo z' = z + 30
Min z' (=z+30) = 8x2 - 2x5 + 5x6 - 5x7
s.a.
-2x2 + x5 - 2x6 + 2x7  -11
-x2 - 2x5 - x6 + x7  -2
x2 , x5 , x6 , x7  0
Este problema, desde el punto de vista del algoritmo dual, tiene una solución
básica no factible, que no es sobreoptimal por lo que habremos de utilizar el método de
la restricción artificial, con lo que la tabla quedaría
Min z'
s1
s2
p
x2
-8
-2
-1
1
x5
2
1
-2
1
Pivotando sucesivamente
x6
-5
-2
-1
1
x7
5
2
1
1
s1
0
1
0
0
s2
0
0
1
0
p
0
0
0
1
0
-11
-2
M
Min z'
s1
s2
x7
x2
-13
-4
-2
1
x5
-3
-1
-3
1
x6
-10
-4
-2
1
x7
0
0
0
1
s1
0
1
0
0
s2
0
0
1
0
p
-5
-2
-1
1
SOL
-5M
-11-2M
-2-M
M
Min z'
p
s2
x7
x2
-3
-2
0
-1
x5
-1/2
1/2
-5/2
1/2
x6
0
2
0
-1
x7
0
0
0
1
s1
-5/2
-1/2
-1/2
1/2
s2
0
0
1
0
p
0
1
0
0
SOL
55/2
11/2+M
7/2
-11/2
y finalmente obtenemos (pivotando alrededor del elemento negativo para forzar la
salida de x7 única forma de lograr la factibilidad)
Min z'
p
s2
x6
x2
-3
-4
0
1
x5
-1/2
3/2
-5/2
-1/2
x6
0
0
0
1
x7
0
2
0
-1
s1
-5/2
1/2
-1/2
-1/2
s2
0
0
1
0
p
0
1
0
0
55/2
-11/2+M
7/2
11/2
Así pues la solución a nuestro problema actual es
x2 = 0
x5 = 0
x6 = 11/2
x7 = 0
s1 = 0
s2 = 7/2
p = -11/2 + M
z’ = 55/2
Si tenemos en cuenta los cambios realizados, la expresión para x3 y
denominando h1, h2 y h3 las holguras de las ecuaciones primales, obtenemos como
solución del programa lineal primal
x1 = -x5 = 0
x2 = 0
x3 = 6- x2 - x6 + x7 = 1/2
x4 = x6 - x7 = 11/2 – 0 = 11/2
h1 = x1 + x2 - x3 + x4 – 5 = 0 + 0 – 1/2 + 11/2 – 5 = 0
h2 = 4 - 2x1 - x3 = 4 – 0 –1/2 = 7/2
h3 = 0
z = z’ –30 = 55/2 – 30 = -5/2
Denominando ahora como d1, d2, d3 y d4 las holguras del programa dual ha de
verificarse que
x1d1 = 0; x2d2 = 0; x3d3 = 0; x4d4 = 0;
y también que
y1h1 = 0; y2h2 = 0; y3h3 = 0;
de donde se obtienen las siguientes consecuencias
y1 = no forzosamente nulo pues h1 = 0
y2 = 0 puesto que h2 = 7/2  0
y3 = no forzosamente nulo pues h3 = 0
d1 = no forzosamente nulo pues x1 = 0
d2 = no forzosamente nulo pues x2 = 0
d3 = 0 pues x3 = 1/2  0
d4 = 0 pues x4 = 11/2  0
Por tanto se cumplirán exactamente las restricciones tercera y cuarta con y2 = 0
verificándose que
- y1 + y3 = -5
y1 + y3 = 0
sistema cuya resolución permite establecer que
y1 = 5/2
y2 = 0
y3 = - 5/2
d1 = 1/2
d2 = 3
d3 = 0
d4 = 0
w = z = -5/2
solución completa del programa dual.
SOLUCIÓN PROBLEMA VI
Dando al programa la forma correcta quedará:
Max z = x1 + x2
s.a.
- x1 + x2  2
5.x1 - 2.x2  5
x1 , x2  0
que da lugar a la siguiente tabla del simplex
Max z
s1
s2
x1
-1
-1
5
x2
-1
1
-2
s1
0
1
0
s2
0
0
1
SOL
0
2
5
en la que pivotaremos sucesivamente alrededor de los elementos marcados en negrita
hasta hallar la solución en la forma que sigue:
Max z
x2
s2
x1
-2
-1
3
x2
0
1
0
s1
1
1
2
s2
0
0
1
SOL
2
2
9
Max z
x2
x1
x1
0
0
1
x2
0
1
0
s1
7/3
5/3
2/3
s2
2/3
1/3
1/3
SOL
8
5
3
que es la solución al problema original.
Si hemos de considerar ahora la restricción x2  2 la nueva tabla a considerar al
añadir es nueva restricción sería
Max z
x2
x1
s3
x1
0
0
1
0
x2
0
1
0
-1
s1
7/3
5/3
2/3
0
s2
2/3
1/3
1/3
0
s3
0
0
0
1
SOL
8
5
3
-2
Esta tabla no se adapta a los requisitos del simplex puesto que en la última
casilla de la columna de x2 no aparece un cero así que la transformaremos sumando a la
última fila la fila correspondiente a x2, quedando entonces
Max z
x2
x1
s3
x1
0
0
1
0
x2
0
1
0
0
s1
7/3
5/3
2/3
5/3
s2
2/3
1/3
1/3
1/3
s3
0
0
0
1
SOL
8
5
3
3
Esta tabla representa una solución factible básica, que es óptima para el
problema transformado pues no puede mejorarse y que coincide con la del problema
original, así que podemos afirmar que la nueva restricción no añade nada nuevo al
problema.
Si consideramos ahora la restricción x1  1 procederemos de igual forma con lo
que la tabla quedará:
Max z
x2
x1
s3
x1
0
0
1
1
x2
0
1
0
0
s1
7/3
5/3
2/3
0
s2
2/3
1/3
1/3
0
s3
0
0
0
1
SOL
8
5
3
1
Esta tabla no se adapta a los requisitos del simplex puesto que en la última
casilla de la columna de x1 no aparece un cero así que la transformaremos restando a la
última fila la fila correspondiente a x1, quedando entonces
Max z
x2
x1
s3
x1
0
0
1
0
x2
0
1
0
0
s1
7/3
5/3
2/3
-2/3
s2
2/3
1/3
1/3
-1/3
s3
0
0
0
1
SOL
8
5
3
-2
La tabla representa una solución no factible (s3 = - 2) y sobreoptimal (línea de z
toda positiva). Aplicando el algoritmo dual a esta tabla y pivotando alrededor del
elemento marcado en negrita obtenemos:
Max z
x2
x1
s2
x1
0
0
1
0
x2
0
1
0
0
s1
1
1
0
2
s2
0
0
0
1
s3
2
1
1
-3
SOL
4
3
1
6
Solución diferente a la original lo que significa que la nueva restricción es
relevante.
Documentos relacionados
Descargar