You are on page 1of 9

OPERATIVA

DEPARTAMENTO DE ESTAD
ISTICA E INVESTIGACION
o

2 . DIPLOMATURA DE ESTADISTICA
Ampliaci
on de la Investigaci
on Operativa. Curso 2007/2008
a
2 Prueba de Evaluaci
on Continua. Fecha: 11-6-2008

1. Explica en que consiste el problema de cubrimiento, es decir: cu


al es su formulacion general.
(0.5 puntos)
Soluci
on:
En teora.
2. Como puede ayudarnos la introducci
on de variables booleanas en la formulacion de un problema con una restriccion del tipo: Si se verifica g(x1 , . . . xn ) < b1 entonces tambi
en se verifica
h(x1 , . . . , xn ) b2 ? (0.5 puntos)
Soluci
on:
En teora.
3. Deduce el algoritmo fraccional de Gomory para problemas de programaci
on lineal todo enteros.
(1 punto)
Dado el siguiente problema lineal todo entero:
M ax 2x1
2x1
x1
x1 ,

+3x2
+x2 8
+3x2 5
x2
0, enteras

y la tabla
optima del problema relajado:
M ax
x1
x2

2 3
0
0

x1 x2
x3
x4
b
1 0
3/5 1/5 19/5
0 1 1/5 2/5
2/5
0 0
3/5
4/5 44/5

Introduce un corte fraccional (f-corte) sobre x1 y realiza una iteraci


on del algoritmo dual del
smplex. (0.5 puntos)
Soluci
on:
Apartado (a)
En teora.
Apartado (b)
El f-corte sera:
3
4
4
x3 x4
5
5
5
M ax
x1
x2
x5

2
3
0
0

b
x1 x2
x3
x4
x5
1
0
3/5
1/5 0 19/5
0
1
1/5
2/5
0
2/5
0
0 3/5 4/5 1 4/5
0
0
3/5
4/5
0 44/5
1 1
1
1
1

M ax
x1
x2
x3

2 3 0
0

b
x1 x2 x3 x4
x5
1 0 0 1
1
3
0 1 0 2/3 1/3 2/3
0 0 1 4/3 5/3 4/3
0 0 0
0
1
8

O tambien:
M ax
x1
x2
x5

2
3
0
0

x1 x2
x3
x4
x5
b
1
0
3/5
1/5
0 19/5
0
1 1/5
2/5
0
2/5

0
0 3/5 4/5
1 4/5
0
0
3/5
4/5
0 44/5
1 1
1
1
1

M ax
x1
x2
x4

2 3
0
0

x1 x2
x3
x4
x5
b
1 0
3/4
0 1/4 4
0 1 1/2 0
1/2 0
0 0
3/4
1 5/4 1
0 0
0
0
1
8

4.

Obtener la solucion
optima del siguiente problema
Maximizar
sujeto a :

x1 3x2 + 3x3
2x1 + x2 x3 4
4x1 3x2 2
3x1 + 2x2 + x3 3
xi 0,
i = 1, 2, 3 enteras

aplicando el metodo de ramificacion y acotaci


on, pudiendo utilizar AMPL para la resoluci
on de los
subproblemas de cada nodo. (2 puntos)
Soluci
on:
Si lo resolvemos con ampl como problema entera, tenemos la solucion optima del problema:
var x1 >=0,integer;
var x2 >=0,integer;
var x3 >=0,integer;
maximize z: x1-3*x2+3*x3;
s.t. r1: 2*x1+ x2 - x3 <= 4;
s.t. r2: 4*x1-3*x2 <=2;
s.t. r3: -3*x1 + 2*x2+x3 <=3;
ampl: reset;
ampl: model e01.mod;
ampl: option solver cplex;
ampl: solve;
CPLEX 11.0.1: optimal integer solution; objective 11
7 MIP simplex iterations
0 branch-and-bound nodes
1 mixed-integer rounding cut
ampl: display z,x1,x2,x3;
z = 11
x1 = 2
x2 = 2
x3 = 5
Para resolver por ramificacion y acotaci
on, el proceso con ayuda de ampl empezara resolviendo
el problema relajado, cuyo modelo ampl es:
var x1 >=0;
var x2 >=0;
var x3 >=0;
maximize z: x1-3*x2+3*x3;
s.t. r1: 2*x1+ x2 - x3 <= 4;
s.t. r2: 4*x1-3*x2 <=2;
s.t. r3: -3*x1 + 2*x2+x3 <=3;
Resolvemos el problema relajado con ampl:
ampl: model e01.mod;
ampl: option solver cplex;
ampl: solve;
CPLEX 11.0.1: optimal solution; objective 14
2 dual simplex iterations (2 in phase I)
ampl: display z,x1,x2,x3;
z = 14
x1 = 0.5
x2 = 0
x3 = 4.5

El proceso de solucion queda recogido en el siguiente arbol:


(0.5,0,4.5)
z=14
x1 0

x1 1

(0,0,3),z=9

(1,0.667,4.667),z=13
x2 0

x2 1

No factible

(1.25,1,4.75),z=12.5
x3 4

x3 5

(1.25,1,4),z=10.25

(2,2,5),z=11

La solucion
optima es:
x = (2, 2, 5),
El u
ltimo problema resuelto con ampl fue:
var x1 >=0;
var x2 >=0;
var x3 >=0;
maximize z: x1-3*x2+3*x3;
s.t. r1: 2*x1+ x2 - x3 <= 4;
s.t. r2: 4*x1-3*x2 <=2;
s.t. r3: -3*x1 + 2*x2+x3 <=3;
s.t. ra1: x1 >= 1;
s.t. ra2: x2 >= 1;
s.t. ra3: x3 >= 5;

z = 11

5.

Dado el siguiente problema de programaci


on lineal booleano:
M ax 3x1 + 2x2 + 6x3 + 5x4
s.a.
x1 + x2 + 3x3 + 2x4 4
x1 x2 + 3x3 2x4 3
x1 , x2 , x3 , x4 {0, 1}

(a) Obtener una solucion heurstica utilizando el metodo de b


usqueda rudimentario con el conjunto de movimientos complemento simple. Realizar 3 iteraciones partiendo del punto (0, 0, 0, 0).
(0.5 puntos)
(b) Obtener una solucion heurstica utilizando el algoritmo tab
u para problemas enteros binarios
con el conjunto de movimientos complemento simple. Realizar 4 iteraciones partiendo del
punto (0, 0, 1, 0) y considerando tab
u complementar cualquier componente que haya sido
cambiada para las 2 proximas iteraciones. (1 punto)
(c) Obtener una solucion heurstica utilizando el algoritmo de recocido simulado con el conjunto
de movimientos complemento simple. Realizar 4 iteraciones partiendo del punto (0, 0, 0, 0),
considerando como temperatura q = 10 y lista de n
umeros aleatorios (en ese orden): (1
punto)
0.568, 0.109, 0.053, 0.898, 0.515, 0.719, 0.200, 0.925, 0.646, 0.633, 0.442, 0.280, 0.105
(d) Determina la solucion
optima del problema utilizando el algoritmo de ramificacion y acotaci
on
de programaci
on lineal 0-1 (sin usar ninguna cota inferior inicial). (1 punto)
Soluci
on:
Apartado (a)
Iteraci
on 1: solucion actual: (0, 0, 0, 0) > (f, g1 , g2 ) = (0, 0, 0)
(1, 0, 0, 0) > (f, g1 , g2 ) = (3, 1, 1)
(0, 1, 0, 0) > (2, 1, 1)
(0, 0, 1, 0) > (6, 3, 3)
(0, 0, 0, 1) > (5, 2, 2)
Iteraci
on 2: solucion actual: (0, 0, 1, 0) > (f, g1 , g2 ) = (6, 3, 3)
(1, 0, 1, 0) > (f, g1 , g2 ) = (9, 4, 4) NF
(0, 1, 1, 0) > (8, 4, 2)
(0, 0, 0, 0) > (0, 0, 0)
(0, 0, 1, 1) > (11, 5, 1) NF
Iteraci
on 3: solucion actual: (0, 1, 1, 0) > (f, g1 , g2 ) = (8, 4, 2)
(1, 1, 1, 0) > (f, g1 , g2 ) = (11, 5, 3) NF
(0, 0, 1, 0) > (6, 3, 3)
(0, 1, 0, 0) > (2, 1, 1)
(0, 1, 1, 1) > (13, 6, 0) NF
Luego la solucion heurstica encontrada es: x = (0, 1, 1, 0), con z = 8.
Apartado (b)
El procedimiento tab
u se puede resumir en la siguiente tabla:
t
x(t)
z(x(t) ) z(
x) Complementada Obj
0 (0, 0, 1, 0)
6
6
(2, 3) j = 2
2
1 (0, 1t , 1, 0)
8
8
(3) j = 3
6
2 (0, 1t , 0t , 0)
2
8
(1, 4) j = 4
5
3 (0, 1, 0t , 1t )
7
8
(1, 2) j = 1
3
4 (1t , 1, 0, 1t )
10
10
f in
Luego la solucion heurstica encontrada es: x = (1, 1, 0, 1), con z = 10.

Apartado (c)
El procedimiento de recocido simulado puede resumirse en la siguiente tabla:
t
x(t)
z(x(t) ) z(
x)
0 (0, 0, 0, 0)
0
0
1 (0, 0, 1, 0)
6
6
2 (0, 1, 1, 0)
8
8

3 (0, 0, 1, 0)
4 (0, 1, 1, 0)

6
8

8
8

q
Complementa
Obj.
10 (1, 2, 3, 4), na = 0.568 j = 3
6
10
(2, 3), na = 0.109 j = 2
2
10
(2, 3), na = 0.053 j = 2
2

10
10

(2, 3), na = 0.515 j = 3

(2, 3), na = 0.200 j = 2

(2, 3), na = 0.646 j = 3

(2, 3), na = 0.442 j = 2

(2, 3), na = 0.105 j = 2


(2, 3), . . .

Resultado
Aceptamos
Aceptamos
na = 0.898 6< e2/10 =
0.819 Rechazamos
na = 0.719 6< e6/10 =
0.549 Rechazamos
na = 0.925 6< e2/10 =
0.819 Rechazamos
na = 0.633 6< e6/10 =
0.549 Rechazamos
na = 0.280 < e2/10 =
0.819 Aceptamos
Aceptamos

Luego la solucion heurstica encontrada es: x = (0, 1, 1, 0), con z = 8.


Apartado (d)
Consideramos el cambio:
x1 = y2 , x2 = y1 , x3 = y4 , x4 = y3
M ax.
s.a.

2
3
5
6
y1 y 2 y 3 y4
1
1
2
3 4
1 1 2 3 3

Iter. F ijas y1 y2 y3 y4
1
0
1 1 1 1
2
0
0 1 1 1
3
1
0 0 1 1
4
1
1 0 1 1
5
2
1 0 0 1
6
2
1 1 0 1
7
2
0 0 0 1
8
2
0 1 0 1
9
3
1 1 0 0
10
3
1 1 1 0

zs
16
14
11
13
8
11
6
9
5
10

T erm. R. 1 R. 2
N F (1)
0
0
N F (1)
3
4
N F (1)
7
8
N F (1)
5
6
F, T
0
0
N F (1)
9
10
F, T
0
0
N F (2)
0
0
F, T
0
0
F, T
0
0

Zi

8
8
8
8
8
10

En forma de
arbol:
y=(1,1,1,1)
z=16,NF

y=(0,1,1,1)
z=14,NF
y1 = 0

y1 = 1

y=(0,0,1,1)
z=11,NF
y2 = 0
y=(0,0,0,1)
z=6,F

y=(1,0,1,1)
z=13,NF
y2 = 1

y=(0,1,0,1)
z=9,NF,T

y2 = 0
y=(1,0,0,1)
z=8,F
zinf=8

y2 = 1
y=(1,1,0,1)
z=11,NF
y3 = 0

y=(1,1,0,0)
z=5,F

y3 = 1
y=(1,1,1,0)
z=10,F
zinf=10

La solucion
optima es: y = (1, 1, 1, 0) con z = 10.
Deshaciendo el cambio, la solucion
optima es: x = (1, 1, 0, 1), con z = 10.

6.

Dado el siguiente problema de programaci


on lineal booleano:
M ax 3x1 + 2x2 + 8x3 + 5x4 + 4x5 + x6
s.a.
x1 + x2 + 3x3 + 2x4 + 2x5 + 2x6 5
x1 , x2 , x3 , x4 , x5 , x6 {0, 1}

(a) Utilizar la estrategia greedy para obtener una solucion heurstica para este problema de
mochila. (1 punto)
(b) Se introducen las siguientes restricciones adicionales:
Si x1 = 1 entonces x4 = 0.
Al menos tres variables sean no nulas.
Si x3 o x4 toman el valor 1, la variable x2 tambien.
Formula el problema y resuelvelo con ayuda de ampl. (1 punto)
Soluci
on:
Apartado (a)
Transformamos el problema de forma que se cumpla la condici
on de partida del algoritmo
Greedy:
c1
c2
cn

...
a1
a2
an
x1 x2
3
1

2
1

3
y1

2
y4

x3

x5

x6

2.667 2.5 2
y2
y3 y5

0.5
y6

8
3

x4
5
2

4
2

1
2

Luego el problema sera:


M ax 3y1 + 8y2 + 5y3 + 2y4 + 4y5 + y6
s.a.
y1 + 3y2 + 2y3 + y4 + 2y5 + 2y6 5
yi {0, 1}, i
Luego la solucion heurstica Greedy es:
y = (1, 1, 0, 1, 0, 0)

z = 3 + 8 + 2 = 13

Deshaciendo el cambio, la solucion heurstica es:


x = (1, 1, 1, 0, 0, 0),

z = 13

Se puede comprobar que coincide con la solucion optima.


Apartado (b)
Las restricciones a
nadidas, respectivamente son:
x1 1 x4
x1 + x2 + . . . + x6 3
x3 + x4 2x2
Resolvemos el problema con ayuda de ampl:
var x {1..6} binary;
maximize z: 3*x[1]+2*x[2]+8*x[3]+5*x[4]+4*x[5]+x[6];
s.t. r1: x[1]+x[2]+3*x[3]+2*x[4]+2*x[5]+2*x[6] <= 5;
s.t. r2: x[1] + x[4] <= 1;
s.t. r3: sum {i in {1..6}} x[i] >=3;
s.t. r4: x[3]+x[4] - 2*x[2] <= 0;

La solucion que nos da ampl es:


ampl: reset;
ampl: model e01.mod;
ampl: option solver cplex;
ampl: solve;
CPLEX 11.0.1: optimal integer solution; objective 13
1 MIP simplex iterations
0 branch-and-bound nodes
ampl: display z,x;
z = 13
x [*] :=
1 1
2 1
3 1
4 0
5 0
6 0
;
Es decir, la solucion
optima es:
x = (1, 1, 1, 0, 0, 0),

z = 13

You might also like