You are on page 1of 16

1

1. Definicin del problema.



2. Solucin Greedy.

3. Ficheros de datos.
ALGORTMICA

Problema de Asignacin Cuadrtica (QAP)
2
1. Definicin del problema
El Problema de Asignacin Cuadrtica (QAP) est
considerado como uno de los problemas de optimizacin
combinatoria ms complejos

Es NP-completo. No se ha encontrado solucin ptima para
la mayora de los problemas de tamao n>90.

El problema consiste en encontrar la asignacin ptima de n
unidades a n localizaciones, conociendo la distancia entre las
primeras y el flujo existente entre las segundas
3
1. Definicin del problema
Sean n unidades (u
i
, i=1,...,n) y n localizaciones (l
j
, j=1,...,n).
Entonces las matrices F=(f
ij
) y D=(d
ij
), de dimensin (n n)
son:
F es la matriz de flujo, es decir, f
ij
es el flujo que circula entre
la unidad i a la j.
D es la matriz de distancias, es decir, d
kl
es la distancia entre
la localizacin k y la l.

El costo de asignar simultaneamente u
i
a l
k
y u
j
a l
l
es:
f
ij
d
kl
.

4
1. Definicin del problema
La definicin matemtica del problema consiste en
minimizar el costo de las asignaciones:



donde [
N
es el conjunto de todas las permutaciones posibles
de N={1,2,...,n}.

|
|
.
|

\
|

H e

= =
n
i
n
j
j S i S ij
N
d f
S
1 1
) ( ) (
min
5
1. Definicin del problema
l1
l3
l4
l2
Por ejemplo, supongamos que se ha de disear un hospital
que comprende cuatro unidades distintas:
- u
1
: Maternidad.
- u
2
: Urgencias.
- u
3
: Unidad de Cuidados Intensivos.
- u
4
: Ciruga.

Que han de ser situadas en
un edificio con la siguiente
distribucin:
6
1. Definicin del problema
l1
l3
l4
l2
La matriz D contiene las distancias existentes entre las
diferentes salas.
La matriz F recoge el nmero medio de pacientes que pasan
de una unidad a otra cada hora.
0 12 6 4 0 3 8 3
D = 12 0 6 8 F = 3 0 2 4
6 6 0 7 8 2 0 5
4 8 7 0 3 4 5 0
u
1
: Maternidad. u
2
: Urgencias. u
3
: Unidad de Cuidados Intensivos. u
4
: Ciruga.

7
1. Definicin del problema
Las soluciones al problema son permutaciones del conjunto
N={1, 2, 3, 4}.

Para entenderlo mejor, podemos pensar en su representacin
en forma de vector: las posiciones se corresponden con las
unidades y el contenido de las mismas con las localizaciones
(salas del hospital) en la que se sitan las unidades
correspondientes:
u1 u2 u3 u4
S=
S(1) = localizacion lk asociada a u1
S(4) = localizacion ll asociada a u4
8
1. Definicin del problema
As, la solucin S={3,4,1,2} representa la siguiente
distribucin de asignaciones:

u
1
l
3
u
2
l
4
u
3
l
1
u
4
l
2
u1 u2 u3 u4
S =
S(1) = localizacion lk asociada a u1
S(4) = localizacion ll asociada a u4
3

4

1

2

9
1. Definicin del problema
cuyo costo C(S) es:

f
12
d
34
+ f
13
d
31
+ f
14
d
32
3 7 + 8 4 + 3 6 +
+ f
21
d
43
+ f
23
d
41
+ f
24
d
42
3 7 + 2 4 + 4 8 +
+ f
31
d
13
+ f
32
d
14
+ f
34
d
12
8 6 + 2 4 + 5 12 +
+ f
41
d
23
+ f
42
d
24
+ f
43
d
21
3 6 + 4 8 + 5 12 = 358

u1 u2 u3 u4
S =
S(1) = localizacion lk asociada a u1
S(4) = localizacion ll asociada a u4
3

4

1

2

Cada asignacin unidad-localizacin influye en todas las
transferencias que se efectan desde la unidad en cuestin.
10
2. Solucin Greedy
La complejidad del problema ha provocado que se hayan
aplicado muchos algoritmos aproximados para su resolucin.

Analizando la funcin objetivo podemos determinar que
una buena frmula heurstica para resolver el problema es:

Asociar localizaciones cntricas en la red con unidades de
gran flujo y viceversa.
11
2. Solucin Greedy
Podemos construir un algoritmo greedy usando esta
heurstica mediante dos vectores, el potencial de flujo y el
potencial de distancia:

; i = 1, ..., n

; k = 1, ..., n


Cuanto menor sea d
k
, ms cntrica es la localizacin y
Cuanto mayor sea f
i
, ms importante es la unidad en el
intercambio de flujos.

=
.
=
n
j
ij i
f f
1

=
.
=
n
l
kl
k
d d
1
^
^
12
2. Solucin Greedy

Cuanto menor sea d
k
, ms cntrica es la localizacin y
cuanto mayor sea f
i
, ms importante es la unidad en el
intercambio de flujos.

Por tanto,

el algoritmo ir seleccionando la unidad i libre con mayor f
i
y
le asignar la localizacin k libre con menor d
k
.

^
^
^
^
13
2. Solucin Greedy
Algoritmo Greedy-QAP

1. Calcular los potenciales f
i
y d
k
.
2. S C.
3. Repetir para x =1 hasta n (asignaciones 1 a n):





4. Calcular el costo de S, C(S). Devolver S y C(S).
^ ^
^
^

1. Escoger la unidad u
i
no asignada an (u
i
eS) con mayor valor de f
i
.
2. Escoger la localizacin l
k
no asignada an (l
k
eS) con menor valor de d
k
.
3. a
x
= (u
i
,l
k
). S S a
x
.

3.
3.
3.
14
2. Solucin Greedy

Si aplicamos el algoritmo greedy propuesto al ejemplo del
hospital obtenemos los siguientes resultados:
14 22

f = 9 d = 26
15 17
12 19

S = {(u
3
,l
3
), (u
1
,l
4
), (u
4
,l
1
), (u
2
,l
2
)}

C(S) = f
12
d
42
+ f
13
d
43
+ f
14
d
41
3 8 + 8 7 + 3 4
+ f
21
d
24
+ f
23
d
23
+ f
24
d
21
+ 3 8 + 2 6 + 4 12
+ f
31
d
34
+ f
32
d
32
+ f
34
d
31
+ 8 7 + 2 6 + 5 4
+ f
41
d
14
+ f
42
d
12
+ f
43
d
13
= + 3 4 + 4 12 + 5 6 =
354

^ ^
15
3. Ficheros de datos
Los ficheros de datos se han obtenido de QAPLIB.
QAPLIB es una biblioteca que contiene distintas instancias
del QAP llevando un registro de las mejores soluciones
obtenidas hasta el momento para las mismas.

Es accesible en el Web en la siguiente direccin:
http://www.opt.math.tu-graz.ac.at/qaplib

En dicha direccin pueden encontrarse tanto los datos como
las soluciones de distintas instancias del problema,
relacionadas con diferentes aplicaciones.
16
3. Ficheros de datos
El formato de los ficheros de datos es:
n
A
B
donde n es el tamao del problema y A y B son,
respectivamente las matrices de flujo y distancia, o distancia y
flujo, dependiendo de la funcin fitness.
El formato de los ficheros de soluciones es:
n sol
p
donde n es el tamao del problema, s es el valor de la
solucin y p es la permutacin correspondiente.
|
|
.
|

\
|

H e

= =
n
i
n
j
j S i S ij
N
b a
S
1 1
) ( ) (
min

You might also like