un modelo de programación binaria mixta para el problema

Anuncio
UN MODELO DE PROGRAMACIÓN BINARIA MIXTA
PARA EL PROBLEMA GENERALIZADO DE LA
p-CENTDIANA
M.J. Canós Darós1
M. Martínez Romero2
M. Mocholí Arce1
Universitat de Valencia
Florida Universitaria
Universitat de Valencia
maria.j.canos@uv.es
marisam@florida-uni.es manuel.mocholi@uv.es
Resumen
Los problemas de localización tratan de averiguar la ubicación de las instalaciones de
una empresa de modo que se minimicen los costes o se maximicen los beneficios. Dos
de los modelos más utilizados en localización en redes son el problema de la p-mediana
y el problema del p-centro. El primero consiste en minimizar la suma total de las
distancias ponderadas, mientras que el segundo trata de minimizar la máxima distancia
ponderada desde un centro de servicio hasta sus usuarios asignados. El objetivo del
problema de la p-mediana hace que sea eficiente pero no equitativo, mientras que la
cota implícita en el problema del p-centro lo convierte en equitativo pero no eficiente.
Para combinar ambos aspectos, aparece en la década de los 70 un nuevo problema, el de
la p-centdiana, cuya función objetivo es una mezcla de las dos anteriores. En este
trabajo presentamos un modelo de programación binaria mixta para el problema
generalizado de la p-centdiana sobre una red en el que los pesos asociados al p-centro y
a la p-mediana no son necesariamente iguales. El primer paso para resolver el problema
es identificar su conjunto dominante finito. En consecuencia, previamente a la
descripción del modelo, proponemos un algoritmo que nos permitirá calcular este
conjunto.
Palabras clave: Localización en redes, p-centdiana, programación entera, conjunto
dominante finito.
1 INTRODUCCIÓN
Los problemas de la p-mediana y el p-centro son modelos básicos de localización
sobre redes donde las longitudes de las aristas (distancias) y los pesos de los vértices
(demandas) son conocidos. El problema de la p-mediana consiste en encontrar p puntos
de la red de modo que se minimice la distancia total ponderada entre estos puntos y los
vértices. El problema del p-centro trata de localizar los centros de servicio de modo que
se minimice la máxima distancia desde un punto demanda hasta su centro de servicio
más próximo.
El problema de la p-mediana proporciona a menudo soluciones donde se discrimina a
las poblaciones remotas y con baja densidad de población en términos de accesibilidad
a los centros de servicio. Por este motivo se considera que la p-mediana es una solución
I
Departamento de Matemática Económico-Empresarial. Avda dels Tarongers, s/n, Edificio
Departamental Oriental, 46071 Valencia. Teléfono: 963828369. Fax: 963828370.
2
Departamento de Matemáticas y Estadística. Rey En Jaume I, 2,
46470 Catarroja.
Teléfono:961220380. Fax: 961269933.
no equitativa, aunque si eficiente. El p-centro, en cambio, es equitativo pero minimizar
la máxima distancia puede causar un gran incremento en la distancia total, lo que
genera una pérdida sustancial de eficiencia. Para buscar una solución de compromiso,
Halpern (1976) introduce el concepto de centdiana, donde minimiza una combinación
convexa de las funciones objetivo del centro no ponderado y la mediana.
Posteriormente, este problema ha sido generalizado por Halpern (1979, 1980), Handler
y Mirchandani (1979) y Tamir, Pérez Brito y Moreno Pérez (1998).
Para poder plantear el problema generalizado de la p-centdiana como un modelo de
programación matemática binaria necesitamos un conjunto dominante finito, es decir, la
identificación de un subconjunto finito de la red que necesariamente contenga una
solución óptima para todas las instancias. Pérez Brito y Moreno Pérez (2000)
demuestran que el conjunto de puntos extremos de la red es un conjunto dominante
finito para este problema.
En este trabajo proponemos un algoritmo para calcular este conjunto y presentamos
un modelo de programación binaria mixta para el problema generalizado de la pcentdiana sobre una red donde los pesos asociados al p-centro y a la p-mediana no son
necesariamente iguales.
2 FORMULACIÓN DEL PROBLEMA
Consideremos una red no dirigida y conexa N = (V, E), donde V = {v1,...,vn} es el
conjunto de vértices y E = {e1, ..., em} el de aristas. Cada arista tiene asociada una
longitud positiva conocida. Un punto interior de una arista la divide en dos subaristas
cuyas longitudes son respectivamente la distancia de dicho punto a los vértices. Sea
P(N) el conjunto continuo de puntos de la red N. La longitud de las aristas induce una
función de distancia d(., .) en P(N). Un camino entre dos vértices vi y vj es una
secuencia de aristas de longitud mínima de N que une vi y vj. Un camino entre dos
puntos x e y es un camino entre dos vértices más dos subaristas uniéndolos con los
vértices. La longitud de un camino es la suma de las longitudes de sus aristas y
subaristas. Para cualquier par de puntos x, y ∈ P(N), sea d(x,y) la longitud mínima de los
caminos entre ellos. Además, para cualquier subconjunto X ⊂ P(N) su distancia al
vértice vi viene dada por:
d ( X , vi ) = min d ( x, vi )
x∈ X
Supongamos que cada vértice vi ∈ V tiene asociados un par de pesos no negativos
(ωi, ω’i). Usando la notación anterior definimos los problemas de la p-mediana, el pcentro y la p-centdiana como sigue:
Dada la red N = (V, E), el problema de la p-mediana es encontrar el conjunto
X* ⊂ P(N), con |X*| = p, que minimiza la función objetivo:
f m ( X ;V ) = ∑ ω i d ( X , v i )
vi ∈V
El problema ponderado del p-centro es encontrar el conjunto X* ⊂ P(N), con |X*|=p,
que minimiza la función objetivo:
f c ( X ;V ) = max ω 'i d ( X , vi )
vi ∈V
Para un λ dado, 0 ≤ λ ≤ 1, el problema generalizado de la p-λ-centdiana es encontrar
el conjunto X* ⊂ P(N), con |X*| = p, que minimiza la función objetivo:
f λ ( X ;V ) = λf c ( X ;V ) + (1 − λ ) f m ( X ;V )
El valor de λ refleja el peso atribuido a la función centro con respecto a la función
mediana. Cuando λ = 0, el problema generalizado de la p-λ-centdiana es el problema
de la p-mediana (eficiencia) y cuando λ = 1 es el problema del p-centro (equidad).
Para 0 < λ < 1, este problema se puede ver como un problema de localización donde se
tienen en cuenta ambos criterios (eficiencia y equidad).
3 UN CONJUNTO DOMINANTE FINITO
Pérez Brito y Moreno Pérez (2000) demuestran que el conjunto de puntos extremos
de la red es un conjunto dominante finito para nuestro problema. Para poder calcular los
puntos extremos necesitamos una serie de definiciones:
Definición 1. Diremos que un punto xijk ∈ P(N) es un punto cuello de botella con rango
rijk asociado a vk ∈ V si es un punto interior de una arista (vi , vj) tal que :
1. rijk = ω ' k d ( xijk , v k ) = ω ' k ( xijk + d ik )
y
2. rijk = ω ' k d ( xijk , vk ) = ω ' k (lij − xijk + d jk )
Al conjunto de todos los puntos cuello de botella lo denotamos CB.
Definición 2. Diremos que un punto x(i ) ijkl ∈ P(N) ( x( j ) ijkl ) es un punto pendiente con
rango r (i ) ijkl ( r ( j ) ijkl ) asociado a vk , vl ∈ V si es un punto interior de una arista (vi , vj)
tal que :
1. r (i ) ijkl = ω ' k ( x(i ) ijkl + d ik ) = ω ' l ( x(i ) ijkl + d il ) con ω ' k ≠ ω ' l
o
2. r ( j ) ijkl = ω ' k (l ij − x( j ) ijkl + d jk ) = ω 'l (lij − x( j ) ijkl + d jl ) con ω ' k ≠ ω 'l
Al conjunto de todos los puntos pendiente lo denotamos PP.
Definición 3. Diremos que un punto xijkl ∈ P(N) es un centro local con rango rijkl
asociado a vk , vl ∈ V si es un punto interior de una arista (i,j) tal que :
1. rijkl = ω ' k d ( xijkl , v k ) = ω ' k ( xijkl + d ik ) < ω ' k (lij − xijkl + d jk )
y
2. rijkl = ω 'l d ( xijkl , vl ) = ω ' l (lij − xijkl + d jl ) < ω 'l ( xijkl + d il )
Al conjunto de todos los centros locales lo denotamos CL.
Para una arista fija (vi , vj) y dos vértices fijos vk , vl ∈ V, la interpretación gráfica de
estas definiciones se puede ver en la figura 1.
ω’l d(x, vl)
ω’k d(x, vk)
Figura 1
i
PP
CB
CL
j
Analíticamente, se pueden calcular los puntos cuello de botella como
lij − d ik + d jk
xijk =
2
k
El valor de xij siempre estará entre 0 y lij, debido a la desigualdad triangular. Si
xijk = 0 (lij), entonces, por definición, no es un punto cuello de botella aunque este valor
nos indica que la función ω’k d(x, vk) es decreciente (creciente). Si 0 < xijk < lij, entonces
sí es un punto cuello de botella. En la subarista (vi, x ijk ) la función ω’k d(x,vk) es
creciente mientras que en la subarista ( xijk , vj) es decreciente. Por tanto, para calcular los
puntos pendiente y los centros locales, dados dos vértices fijos vk , vl ∈ V, tenemos la
arista (vi, vj) dividida en, como máximo, tres subaristas en las que conocemos el
crecimiento de las dos funciones de distancia ponderadas.
A partir de la definición de distancia, centro local y punto pendiente, se puede
demostrar que:
lij − d il + d jl
lij − d ik + d jk
xijl =
< xijkl <
= xijk
2
2
En consecuencia, tenemos que:
1.- En el intervalo ]0, xijl [, si es distinto del vacío, puede existir un punto pendiente
que alcanza vk y vl a través de vi y que se puede calcular como:
ω ' d − ω ' k d ik
x(i ) ijkl = l il
ω ' k −ω 'l
2.- En el intervalo ] xijl , xijk [, si es distinto del vacío, puede existir un centro local que
alcanza vk a través de vi y vl a través de vj y que se puede calcular como:
ω 'l (lij + d jl ) − ω ' k d ik
xijkl =
ω ' k +ω 'l
3.- En el intervalo ] xijk , lij[, si es distinto del vacío, puede existir un punto pendiente
que alcanza vk y vl a través de vj y que se puede calcular como:
ω 'l (lij + d jl ) − ω ' k (lij + d jk )
x( j ) ijkl =
ω ' k −ω 'l
Con todo ello, proponemos el algoritmo AUX1 para calcular los puntos cuello de
botella, centros locales y puntos pendiente.
Algoritmo AUX1
Para cada arista (vi, vj) ejecutar:
PASO 1. Para k = 1, ..., n; k ≠ i, k ≠ j
Calcular
xijk =
lij − d ik + d jk
2
Si x ∈ ]0, lij[, calcular
k
ij
rijk = ω ' k ( xijk + d ik )
Guardar el par ( xijk , rijk ) en CB.
PASO 2. Ordenar xijk de menor a mayor y crear los pares k, l de modo que xijl ≤ xijk y
ejecutar el Paso 3.
PASO 3 Si xijl ≠ 0 , calcular
ω 'l d il − ω ' k d ik
ω ' k −ω 'l
y comprobar si x(i ) ijkl ∈ ]0, lij[. En este caso, calcular
x(i ) ijkl =
r (i ) ijkl = ω ' k ( x(i ) ijkl + d ik )
y guardar en PP.
Si xijk ≠ lij , calcular
ω 'l (lij + d jl ) − ω ' k (lij + d jk )
ω ' k −ω 'l
k
kl
y comprobar si x( j ) ij ∈ ] xij , lij [. En este caso, calcular
x( j ) ijkl =
r ( j ) ijkl = ω ' k (lij − x( j ) ijkl + d jk ) .
y guardar en PP.
Si xijl ≠ xijk , calcular
ω 'l (lij + d jl ) − ω ' k d ik
ω ' k +ω 'l
y comprobar si xijkl ∈ ] xijl , xijk [. En este caso, calcular
xijkl =
rijkl = ω ' k ( xijkl + d ik )
y guardar en CL.
El algoritmo AUX1 nos permite calcular el conjunto de distancias canónicas definido
como:
R= {r / r está asociado a un punto de CB U CL U PP o r=w’i d(vi , vj) para vi, vj ∈ V}
El conjunto de puntos extremos canónicos está formado los vértices y los puntos
extremos cuyo rango es una distancia canónica, donde entendemos por punto extremo:
Definición 4. Diremos que un punto x ∈ P(N) es un punto extremo con rango
r asociado a vk ∈ V si es un punto interior de una arista (vi, vj) tal que :
1. r = w' k d ( x, v k ) = w' k ( x + d (vi , v k ))
o
2. r = w' k d ( x, v k ) = w' k (lij − x + d (v j , v k ))
Al conjunto de todos los puntos extremos lo denotamos PE.
Gráficamente, los puntos extremos son la intersección entre la gráfica de una
distancia ponderada y la recta paralela al eje de abcisas y = r, siendo r una distancia
canónica. Esto nos lleva a plantear el algoritmo PE1.
Algoritmo PE1
Definir
r −b
F (a, b, c, d ) =
(c − a ) + a
c−d
Para cada r y para cada arista (vi, vj) ejecutar:
Para k = 1, ..., n; k ≠ i, k ≠ j, comprobar si existe x ijk .
En caso negativo:
Calcular F(a,b,c,d) con a = 0, b =ω’k dik, c = lij, d = ω’k djk.
Si F(a,b,c,d) ∈ ]0, lij[, entonces PEijk = F(a, b, c, d).
En caso afirmativo:
Calcular F(a, b, c, d) con a = 0, b = ω’k dik , c = x ijk , d = rijk .
Si F(a, b, c, d) ∈ ]0, x ijk [, entonces PEijk1 = F(a, b, c, d).
Calcular F(c, d, e, f) con c = x ijk , d = rijk , e = lij, f =ω’k djk
Si F(c, d, e, f) ∈ [ x ijk , lij [, entonces PEijk 2 = F(c, d, e, f).
El algoritmo PE1 nos permite calcular el conjunto de puntos extremos PE. El
conjunto de puntos extremos canónicos PEC = PE U V es un conjunto dominante finito
para el problema generalizado de la p-λ-centdiana y a sus elementos los llamaremos
localizaciones potenciales.
3 UN MODELO DE PROGRAMACIÓN MATEMÁTICA
El problema generalizado de la p-λ-centdiana puede plantearse como el siguiente
modelo de programación lineal binaria mixta:
Min
λc + (1 − λ )∑ d ij xij
i, j
s.a.
∑x
=ωj
j ∈V
(1)
= ω' j
j ∈V
(2)
xij ≤ ω j y i
i ∈ PEC , j ∈ V
(3)
x' ij ≤ ω ' j y i
i ∈ PEC , j ∈ V
(4)
i∈PEC
ij
∑ x'
i∈PEC
ij
∑d
ij
x'ij ≤ c j ∈ V
(5)
∑y
i
=p
(6)
i∈PEC
i∈PEC
c, xij , x'ij ≥ 0
y i ∈ {0,1}
En este modelo, las variables de localización yi son variables binarias que valen 1 si
existe un centro de servicio en la localización potencial i y 0 en caso contrario. Las
variables de asignación xij representan la cantidad de demanda del vértice vj asociada al
problema de la p-mediana (ωj) que es atendida por la localización potencial i.
Análogamente, x’ij es la cantidad de demanda del vértice vj asociada al problema del pcentro (ω’j) que es atendida por la localización potencial i.
El valor de dij viene dado por la distancia, calculada como la longitud del camino
más corto, que existe entre la localización potencial i y el vértice vj. Nótese que la
matriz [dij] no es una matriz cuadrada.
Por último, las restricciones (1) y (2) aseguran que se atiende toda la demanda de
cada vértice vj , las restricciones (3) y (4) aseguran que sólo las localizaciones
potenciales con un centro de servicio atenderán demanda y la restricción (6) establece
que se localizarán exactamente p centros de servicio.
4 EJEMPLO
Consideremos la siguiente red N con 6 vértices.
V3
2
3
V1
2
3
V6
V2
3
2
7
V5
V4
Las demandas de cada vértice son:
Vértices
Demandas
v1
(2,1)
v2
(1,2)
v3
(2,3)
v4
(3,1)
v5
(1,2)
v6 :
(4,3.5)
Aplicando el algoritmo AUX1 obtenemos la siguiente tabla:
Puntos cuello de botella
Centros locales
Puntos pendiente
x123 = 2
r123 = 12
x1254 = 2 / 3
r1254 = 28 / 3
54
x(2)12
=2
x125 = 1
r125 = 10
x1234 = 1
r1234 = 9
65
65
x(1)12
= 2 / 3 r (5)12
= 28 / 3
x132 = 1
r132 = 8
x1264 = 2 / 3
r1264 = 28 / 3
65
65
= 42 / 5
x(1)13
= 2 / 5 r (1)13
x134 = 1
r134 = 11
x1235 = 6 / 5
r1235 = 48 / 5
x(2) 54
23 = 1
x123 = 1
r231 = 4
x1354 = 4 / 3
r1354 = 32 / 3
6
x 23
=1
r236 = 21
x1364 = 10 / 9
r1364 = 98 / 9
x125 = 2
r252 = 5
x1625 = 1 / 2
r1625 = 7
x1635 = 2 / 5
r1635 = 36 / 5
36
x 25
= 17 / 13 r2536 = 168 / 13
46
x 25
= 21 / 9
r2546 = 84 / 9
54
r (2)12
=8
r (2) 54
23 = 8
Con lo que el conjunto de distancias canónicas es:
R = {12, 10, 28/3, 9, 48/5, 8, 11, 32/3, 98/9, 7, 36/5, 4, 21, 5, 168/13, 84/9,42/5, 3, 2,
6, 14, 30, 18, 12, 20, 35/2, 42}
Con el algoritmo PE1 hemos calculado los 152 puntos extremos canónicos de este
problema. Sustituyendo en el modelo y resolviéndolo mediante GAMS© para distintos
valores de λ, obtenemos
λ
0
0,1
0,2
Localizaciones óptimas
v1,v4
v4,x
v4, x1635
Coste óptimo
19
17,83
16,64
0,3
v4, x1635
15,46
0,4
v4, x1635
14,28
0,5
v4, x1635
13,10
0,6
v4, x1635
11,92
0,7
v4, x1635
10,74
0,8
v4, x1635
9,56
0,9
v4, x1635
v1,v2
8,38
1
7
siendo x=1/3 el punto extremo canónico situado en la arista (1,6).
REFERENCIAS BIBLIOGRAFICAS
HALPERN, J. (1976): "The location of a Centdian convex combination on a undirected
tree". Journal of Regional Science, Vol. 12, pp. 237-245.
HALPERN, J. (1978): "Finding Minimal Center-Median Convex Combination (Centdian) of a Graph". Management Science, Vol. 24, pp. 535-544.
HALPERN, J. (1980): "Duality in the Cent-Dian of a Graph". Operations Research, Vol.
28, pp. 722-735.
HANDLER, G. H. Y MIRCHANDANI, P. B. (1979): Location on Networks: Theory and
Algorithms . Ed. MIT Press, Cambridge, Massachusetts.
PÉREZ BRITO, D. Y MORENO PÉREZ, J. A. (2000): "The generalized p-centdian on
network”. Top, Vol. 8, No. 2, pp. 265-285
TAMIR, A., PÉREZ BRITO, D. y MORENO PÉREZ, J. A. (1997): "A polynomial algorithm
for the p-centdian problem on a tree". Networks. Vol. 32, pp. 255-262.
Descargar