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.