Está en la página 1de 5

Teorı́a

Responder VERDADERO o FALSO a cada una de las afirmaciones siguientes, justificando


brevemente la respuesta:

1. Si la iteración actual del algoritmo del simplex es degenerada entonces la iteración si-
guiente también será degenerada.

Respuesta: FALSO

Si en una iteración hay variables con valor nulo ello no implica necesariamente que en la
iteración siguiente siga habiéndolas ya que puede ocurrir, según el criterio de salida del
algoritmo del simplex, que la variable saliente sea positiva, puesto que sólo son candidatas
a salir de la base aquellas variables que tienen un coeficiente positivo en la columna de la
variable entrante.

2. Al aplicar un algoritmo de ramificación y acotación para resolver un problema de pro-


gramación lineal entera, puede asegurarse que la primera solución factible entera que se
obtenga es la solución óptima.

Respuesta: FALSO

La existencia de una solución entera en una rama tan sólo permite afirmar que es la
solución óptima correspondiente a esa rama pero no puede asegurarse lo mismo para
ramas paralelas.

Problema 1
Resolver el siguiente problema de programación lineal utilizando el método del simplex para
variables acotadas.
Máx z = 3x1 + x2 + x3
sujeto a
x1 − 2x2 + 4x3 ≤ 30
−x1 + x2 − 5x3 ≤ 10
3x1 − 2x2 + 5x3 ≤ 20
0 ≤ x1 ≤ 10
0 ≤ x2 ≤ 15
0 ≤ x3 ≤ 20

SOLUCIÓN:

Introducimos, en primer lugar, las variables de holgura en las restricciones ordinarias para
poner el problema en la forma standard.

Máx z = 3x1 + x2 + x3

sujeto a
x1 − 2x2 + 4x3 + s1 = 30
−x1 + x2 − 5x3 + s2 = 10
3x1 − 2x2 + 5x3 + s3 = 20
0 ≤ x1 ≤ 10
0 ≤ x2 ≤ 15
0 ≤ x3 ≤ 20
s1 , s2 , s3 ≥ 0
Escribimos a continuación la tabla inicial del algoritmo del simplex:

x1 x2 x3 s1 s2 s3 z
z -3 -1 -1 0 0 0 0
s1 1 -2 4 1 0 0 30
s2 -1 1 -5 0 1 0 10
s3 3 -2 5 0 0 1 20

Según el criterio de entrada, entra en la base la variable x1 , dado que z1 − c1 = −3 = Mı́n {zj −
cj | zj −cj < 0} Para determinar la variable saliente, utilizamos el criterio de salida del algoritmo
para variables acotadas. Calculamos los tres valores siguientes:

a) h1 = 10.

b) Mı́n { xxi1
i0
| xi1 > 0} = Mı́n { 30 , 20 } =
1 3
20
3
.

c) Mı́n { xi0x−h
i1
i
| xi1 < 0} = Mı́n { 10−∞
−1
} = ∞.

El mı́nimo de los tres números anteriores es 20


3
, que corresponde a la variable s3 que se convierte
en la variable saliente. Se actualiza la tabla, pivotando sobre el elemento x31 = 3. La nueva
tabla es:

x1 x2 x3 s1 s2 s3 z
z 0 -3 4 0 0 1 20
s1 0 −4/3 7/3 1 0 −1/3 70/3
s2 0 1/3 −10/3 0 1 1/3 50/3
x1 1 −2/3 5/3 0 0 1/3 20/3

La tabla anterior no es óptima, pues hay elementos negativos en la primera fila. Hay que seguir
iterando. La variable entrante es la variable x2 , pues z2 −c2 = −3. Buscamos la variable saliente:
a) h2 = 15.
50
b) Mı́n { xxi0
i2
| xi2 > 0} = Mı́n { 3
1 } = 50.
3

20 70
−10 −∞
c) Mı́n { xi0x−h
i2
i
| xi2 < 0} = Mı́n { 3
− 32
, 3
− 34
} = 5.

Puesto que Mı́n {15, 50, 5} = 5, estamos en el caso c) en que una variable, x1 , pasa a valer su
cota superior, 10. Ajustamos el vector del lado derecho en la forma x′10 = x10 −h1 = 20/3−10 =
−10/3 y cambiamos el signo de x11 . La tabla modificada es:

x1 x2 x3 s1 s2 s3 z
z 0 -3 4 0 0 1 20
s1 0 −4/3 7/3 1 0 −1/3 70/3
s2 0 1/3 −10/3 0 1 1/3 50/3
x1 -1 −2/3 5/3 0 0 1/3 −10/3
Entra en la base x2 y pivotamos sobre −2/3. Añadimos una fila con los signos - y + para indicar
qué variables están en su cota superior y cuáles no. La nueva tabla es:

x1 x2 x3 s1 s2 s3 z
z 9/2 0 −7/2 0 0 −1/2 35
s1 2 0 -1 1 0 -1 30
s2 −1/2 0 −5/2 0 1 1/2 15
x2 3/2 1 −5/2 0 0 −1/2 5
- + + + + +

Puesto que existen elementos negativos en la primera fila, la tabla anterior no es óptima. De
acuerdo con el criterio de entrada, la variable entrante es x3 . Buscamos la variable saliente,
observando que no hay ningún ı́ndice que cumpla el criterio b).

a) h3 = 20.

c) Mı́n { xi0x−h
i3
i
| xi3 < 0} = Mı́n { 30−∞
−1
, 15−∞
−5
, 5−15
−5
} = 4.
2 2

El mı́nimo se alcanza en el caso c), por lo que la variable x2 va a su cota superior. De nuevo
actualizamos la tabla, cambiando el vector del lado derecho a x′20 = x20 − h2 = 5 − 15 = −10
y cambiamos el signo de x22 . La tabla modificada es:

x1 x2 x3 s1 s2 s3 z
z 9/2 0 −7/2 0 0 −1/2 35
s1 2 0 -1 1 0 -1 30
s2 −1/2 0 −5/2 0 1 1/2 15
x2 3/2 -1 −5/2 0 0 −1/2 -10
- + + + + +

Entra en la base x3 y pivotamos sobre −5/2. Actualizamos también la fila de signos. La nueva
tabla es:

x1 x2 x3 s1 s2 s3 z
z 12/5 7/5 0 0 0 1/5 49
s1 7/5 1/5 0 1 0 −4/5 34
s2 -2 1 0 0 1 1 25
x3 −3/5 2/5 1 0 0 1/5 4
- - + + + +

Puesto que todos los elementos de la primera fila de la tabla anterior son positivos, hemos
llegado a la solución óptima. Los valores óptimos de las variables son:

x1 = 10 x2 = 15 x3 = 4 z = 49

Problema 2
En una campaña de lanzamiento de un producto se desea cubrir cinco áreas de venta dis-
poniendo únicamente de tres comerciales. Por experiencias anteriores, el beneficio estimado, en
miles de euros, que se obtiene al asignar un determinado vendedor a un área viene dado en la
tabla siguiente:
Área de venta
Vendedor A1 A2 A3 A4 A5
V1 3 2 1 4 3
V2 5 4 2 1 4
V3 1 3 4 5 2

a) Definir un modelo de asignación para determinar la forma de asignar los vendedores a las
áreas a fin de maximizar el beneficio estimado total.

b) Encontrar todas las posibles asignaciones óptimas mediante el algoritmo húngaro e inter-
pretar el resultado.

SOLUCIÓN:

Puesto que el número de áreas de venta no coincide con el número de vendedores, hay que
añadir dos vendedores ficticios con beneficios nulos. La tabla es:

Área de venta
Vendedor A1 A2 A3 A4 A5
V1 3 2 1 4 3
V2 5 4 2 1 4
V3 1 3 4 5 2
V4 0 0 0 0 0
V5 0 0 0 0 0

Puesto que se desea maximizar el beneficio hay que cambiar los datos de la tabla en costes
se asignación, restando cada valor del máximo de la tabla, que es 5. Por tanto, los costes de
asignación son

Área de venta
Vendedor A1 A2 A3 A4 A5
V1 2 3 4 1 2
V2 0 1 3 4 1
V3 4 2 1 0 3
V4 5 5 5 5 5
V5 5 5 5 5 5

Aplicamos el algoritmo húngaro. En primer lugar restamos el mı́nimo de cada fila y a conti-
nuación el mı́nimo de cada columna. La nueva tabla es

Área de venta
Vendedor A1 A2 A3 A4 A5
V1 1 2 3 0 1
V2 0 1 3 4 1
V3 4 2 1 0 3
V4 0 0 0 0 0
V5 0 0 0 0 0
Los ceros de la tabla anterior se puede cubrir con cuatro lı́neas: una en la columna 1a , otro
en la columna 4a , otra en la fila 4a y otra en la fila 5a . El menor valor no tachado es igual 1.
Restamos 1 a los números no cubiertos, sumamos 1 a los doblemente cubiertos y dejamos como
está al resto. La nueva tabla es

Área de venta
Vendedor A1 A2 A3 A4 A5
V1 1 1 2 0 0
V2 0 0 2 4 0
V3 4 1 0 0 2
V4 1 0 0 1 0
V5 1 0 0 1 0

Se necesitan ahora cinco lı́neas para cubrir todos los ceros. Se tiene, por tanto, la solución
óptima. Una posible asignación óptima es:

Vendedor Área Beneficio


V1 → A4 4
V2 → A1 5
V3 → A3 4
quedando sin asignar la áreas A2 y A5. El beneficio estimado total es

4 + 5 + 4 = 14

Una asignación óptima alternativa es

Vendedor Área Beneficio


V1 → A5 3
V2 → A1 5
V3 → A4 5
quedando sin asignar la áreas A2 y A3. El beneficio estimado total es también igual a 14.

También podría gustarte