Está en la página 1de 7

Tpicos Especiales en Informtica Terica

Implementacin de un modelo de programacin


lineal entera binaria mixta para el problema de ruteo
de vehculos de colecta y entrega de manera
simultnea con ventanas de tiempo en la empresa
Lindley SA
J OS L UIS R ODRGUEZ M ANTILLA1 AND J OS G UILLERMO Q UINTANILLA
PAREDES2
1 Escuela

Academico Profesional de Informtica, Facultad de Ciencias Fsicas y Matemticas,Universidad Nacional de Trujillo, Av. Juan Pablo
II S/n, Trujillo
2 Escuela Academico Profesional de Informtica,Universidad Nacional de Trujillo, Av. Juan Pablo II S/n, Trujillo
* Correspondencia de autores: jquintanilla@unitru.edu.pe , jrodriguez@unitru.edu.pe
Publicado el 05 de Diciembre de 2014

RESUMEN

El presente articulo. muestra la implementacin de un modelo de programacin lineal entera


binaria mixta para el problema de ruteo de vehculos de colecta y entrega de manera simultnea
, y adems incluyen ventanas de tiempo tanto para los clientes como para los centros de colecta y
distribucin. Los datos usados para aplicacin del modelo implementado pertenecen a un problema de la vida real. Este problema est relacionado con la empresa distribuidora de bebidas
gasificadas : Lindley SA, especficamente con la sucursal ubicada en Trujillo. En este problema
intervienen las empresas clientes mayoristas o minoristas que deben ser abastecidas de productos y los vehiculos que se deben encargar de la entrega y colecta de envases de las diferentes
bebidas que ofrece la empresa. Para mas informacion ... Articulo Descargable
Este problema que se plantea, tiene una gran variedad de aplicaciones en la industria, como por
ejemplo en el courier, en el transporte de pasajeros, o en el transporte de alimentos perecibles,
y por lo tanto es de suma importancia cuando existe un sistema de alta demanda con diferentes
opciones en relacion a la ubicacion de los depositos.
2014 Escuela de Ingeniera Informtica
http://cyberface.hol.es/articulo.pdf [Documento suplementario]

1. INTRODUCCION
El sistema de transporte es el componente mas importante para
la mayora de las organizaciones, debido a que el exito de una
cadena de abastecimiento esta estrechamente relacionado con
su diseo y uso adecuados. El transporte es el responsable de
mover los productos terminados, materias primas e insumos,

entre empresas y clientes que se encuentran dispersos geogrficamente, y agrega valor a los productos transportados cuando
estos son entregados a tiempo, sin daos y en las cantidades
requeridas.
Igualmente el transporte es uno de los puntos clave en la satisfaccion del cliente. Sin embargo, es uno de los costos logisticos

Tpicos Especiales en Informtica Terica

ms elevados y constituye una proporcion representativa de los


precios de los productos. Los costos asociados con el transporte
son altamente representativos en la cadena de abastecimiento
y estn involucrados directamente con la relacin que se tiene
con proveedores, clientes y competidores.En Peru (Acosta de
Valencia, 2004): El transporte de carga es una actividad fundamental en el aparato productivo peruano ya que es el sector que
permite que un producto llegue al consumidor final, genere la
circulacin de bienes y dinamice la economia. As mismo dice
el autor que Se debe resaltar la importancia del transporte de
carga por carretera, no slo en cuanto a la carga que se transporta en el territorio nacional, sino tambien en lo relativo a la
competitividad de nuestras exportaciones.
El sistema de transporte debe integrar las principales zonas
de produccion y de consumo del pais, y por lo tanto, la demanda
y los costos de transporte juegan un papel determinante en el
precio final de los bienes. Tambien se debe tener en cuenta que
entre los diferentes modos de transporte de carga, en Peru resulta
particularmente importante la movilizacin por carretera.
Por este medio se transporta alrededor del 80% de la carga del
pais. Adicionalmente, los costos del transporte son altamente
representativos en la cadena de abastecimiento (se ha observado
que el movimiento de carga equivale a 1/3 y 2/3 de los costos
totales de logstica).
Debido a lo anterior, para una administracin efectiva del
sistema de transporte es necesaria la utilizacion de un sistema
de asignacion de rutas (VRP), enfocado a la optimizacin del
proceso de distribucin de personas y mercancas cuyo objetivo
principal es minimizar tiempos y costos en el proceso de entrega
y recogida y en general los costos totales de toda organizacion,
agregando valor al producto a entregar. Ademas, mediante
la administracion de un sistema de transporte eficiente y de
bajo costo las organizaciones pueden obtener un aumento en la
competitividad, en las economas de escala y una reduccin los
precios de los productos.
Ahora bien, teniendo en cuenta lo mencionado, la motivacion
principal para la realizacin del proyecto Diseo de un modelo
de optimizacin de rutas de transporte fue el fomentar el uso
de herramientas logisticas para optimizacion de procesos y operaciones, mediante el uso de tecnicas y mtodos que encuentren
una solucion adecuada a los problemas complejos como, por
ejemplo, la asignacion de vehiculos a una ruta de transporte.
El Problema de Colecta y Entrega Simultanea con Ventana
de Tiempo, es la union de los problemas VRPSPD y VRPTW. La
union de los problemas de (VRP Pickup and Delivery), o VRP
con entrega y recogida, es aquel en el que cabe la posibilidad
de que los clientespueden devolver determinados bienes, por
tanto, se debe tener presente que estos quepan en el vehiculo.
Esta restriccion hace ms difcil el problema de planificacion
y puede causar una mala utilizacion de las capacidades de los
vehiculos,un aumento de las distancias recorridas o a un mayor
numero de vehculos (Volkan, 2005; Dethloff, 200; Halse,1992;
Gendreau et.al., 1994; Min, 1989). Una forma de solucionar
el VRPPD mediante la utilizacion de algoritmos geneticos fue
propuesta por Volkan en 2005, quien afirma que si este problema
incluye la restriccion de culminar todas las entregas antes de iniciar las recogidas se da lugar a un GONZLEZ (G), GONZLEZ
(F) REVISTA INGENIERA E INVESTIGACIN VOL. 26 No.3,
DICIEMBRE DE 2006 151 VRP con backhauls o VRPB, variacion
del VRP estudiada por Charlotte y Goetschalckx (1998).
VRPTW (VRP with Time Windows), es aquel en el que se incluye una restriccin adicional en la que se asocia a cada cliente
una ventana de tiempo, es decir, cada cliente solo est dispuesto

a recibir el bien o servicio durante un intervalo de tiempo predeterminado; este tipo de problema ha sido resuelto por diferentes
autores, entre los que vale la pena mencionar a Olivera (2004),
quien presenta una solucion mediante bsqueda Tab, Gendreau et a.,l (1998) proponen una heuristica de insercion; Olivera
(2004), Vacic (2002), Brysy (2001), Zhu (2000) y Louis et al (1999)
lo resuelven con algoritmos geneticos y Barn y Schaerer (2003)
y Gambardella et al., (1999) presentan una propuesta a traves
de algoritmos de colonia de Hormigas. Los diferentes problemas VRP, y basicamente los que utilizan multiples vehculos
(Restori, s/f; Olivera, 2004) y/o depositos (Tansini et al., s/f),
pueden reducir su complejidad acotando el universo de soluciones, disminuyendo el conjunto de clientes a ser visitados por
cada vehiculo o desde cada deposito, esto es, asignar a cada
vehiculo/deposito un conjunto de clientes para atender, lo que
Medaglia (2005) llama set covering, o lo que otros autores conocen como clusterizar o asignar primero, rutear despues cluster
firts routen second (Olivera, 2004).

2. DEFINICION DEL PROBLEMA


Dado un numero de clientes que requieren tanto el servicio de
suministro o entrega de producto y el servicio de colecta para
reciclaje de productos dentro de un cierto periodo de tiempo, el
problema de que se trata en este trabajo es la forma de enviar
una flota de vehiculos capacitados, estacionado en un centro
de distribucion (DC), para cumplir con las solicitudes de los
clientes, con el numero minimo de vehiculos y el costo de viaje
de la ruta seleccionada. Dado que el mayor nmero de vehculos,
menos los gastos de viaje, el equilibrio entre estos dos tipos de
costos necesarios debe ser considerado.En base a la entrega y
colecta simultnea para las actividades de un vehculo, todos los
vehculos deben regresar al centro de colecta (CC) para descargar
el material reciclado. Si el centro de distribucion es el mismo
que el centro de colecta, entonces, Centro de Colecta es el mismo
que el centro de Entrega.

3. MODELO, ANALISIS Y APLICACIN


A. Modelo Matematico

Basado en la descripcion del problema anterior, se analiza la


operacin de flujo en esta seccin. Notaciones bsicas se introducen, en primer lugar con el nmero de clientes denotado por
n, DC por 0, y CC por n + 1. Si DC = CC, a entonces , 0 n + 1.
El modelo omatematico esta dado por :
Conjuntos :

J - Conjunto de todos los Clientes


JF - Conjunto de todos los Nodos de Entrega
JR - Conjunto de todos los Nodos de Colecta
JC - Conjunto de todos los Nodos
V - Conjunto de todos los Vehculos
Coeficientes :

qv - Capacidad del Vehculo


gv - Costo de Entrega del Vehculo
cij - Distancia entre Nodos
tij - Tiempo de Viaje entre Nodos
d j - Demanda de Entrega del Cliente
p j - Cantidad de Colecta del Cliente
s j - Tiempo de Servicio del Cliente
a j - Tiempo inicial de Servicio para el Cliente
b j - Tiempo final de Servicio para el Cliente

Tpicos Especiales en Informtica Terica

M - Constante arbitrariamente grande


- Constante que indica el equilibrio

Ti + Si + tij M(1

Xijv ) Tj , ieJ, jeJ

(S11)

veV

Variables de Desicion :

L0v - Carga del Vehculo v en la Salida


L j - Carga del Vehculo despues de atender Cliente
Xijv - Vehculo v viaja entre Nodos
t j - Tiempo de incio de servicio del Cliente
T0v - Tiempo de Partida del Vehculo
Tn+1v - Tiempo de Llegada del Vehculo

Asegurar la factibilidad del horario.


Ti + Si + ti(n+1) M(1 Xi(n+1)V T(n+1)V , ieJ, veV
(S12)
Asegurar la factibilidad del horario.

Funcion Objetivo :

gv x0jv + (1 ) cij xijv

z=

veV jeJ

a0 T0V , veV

(S13)

(S1)

ieJF jeJR veV

Asegurar la factibilidad del horario.

Minimizar el costo total de despacho y el costo total de


viaje.

a j Tj b j , jeJ

(S14)

Asegurar la factibilidad del horario.

Restricciones :

xijv = 1, jeJ

T(n+1)V bn+1 , veV

(S2)

(S15)

ieJF veV

Asegurar la factibilidad del horario.

Atender a todos los clientes exactamente una vez.

xihv = xhjv heJ, veV

ieJF

Para asegurar la viabilidad del horario se tiene en cuenta:


(S3)

jeJR

Xijv e{0, 1}, ieJF , jeJR , veV

(S16)

Llegar y dejar a cada cliente con el mismo vehculo.

x0jv =
jeJ

xi(n+1)v veV

B. Anlisis

(S4)

El modelo matematico descrito anteriormente trata de minimizar


el costo total de despacho y el costo total de viaje, teniendo en
cuenta una serie de restricciones, tales como : atender a todos
los clientes exactamente una vez, puesto que se busca minimizar
el tiempo de atencion por cliente, se debe llegar y dejar a cada
cliente con el mismo vehiculo, los vehiculos que parten de el o
los depositos de entrega (delivery) deben al final retornar a los
centros de colecta , se debe tener en cuenta las cargas iniciales de
los vehiculos, las cargas de los vehiculos luego del primer cliente,
carga de los vehiculos en ruta, restricciones de la capacidad de
los vehiculos y por ultimo se debe asegurar la factibilidad en el
horario de servicio de los vehiculos a los clientes.
Este modelo contiene (n + 1)2 |V | + 2n + 3|V | las variables y
2
2n + 5n|V | + 2n + 6|V | limitaciones. Aunque otros autores han
propuesto un modelo similar, que contiene 2(n + 1)2 |V | + (n +
2)|V | variables y 2(n + 1)2 |V | + 2n|V | + n + 3|V | restricciones.
Las variables y restricciones adicionales se deben a el hecho de
que las variables TJV y L JV en el modelo de Kachitvichyanukul
se utiliza para representar el punto de tiempo de servicio y la
carga del vehculo del vehculo v al cliente j. Sin embargo, estas
variables se puede simplificar por Tj y L j porque xi jv se han
restringido a exactamente un vehculo v para servir al cliente j.

ieJ

Los vehiculos que parten de Depositos de entrega deben al


final retornar a los depositos de colecta.
L0v =

d j xijv veV

(S5)

ieJF jeJ

Las cargas iniciales de los vehiculos.


L j L0v d j + p j M (1 x0jv ) jeJ, veV

(S6)

Las cargas de los vehiculos luego del primer cliente.


L j L i d j + p j M (1

xijv )ieJ, jeJ

(S7)

veV

Carga de los vehiculos en ruta


L0V qv veV

(S8)

Restricciones de la capacidad de los vehiculos.


L j q v + M (1

Xijv ) jeJ, veV

IMPLEMENTACIN

(S9)

Implementacion del modelo en GLPK :

ieJF
1

Restricciones de la capacidad de los vehiculos.

T0V + t0j M(1 X0jV Tj , jeJ, veV

(S10)

3
4
5

Asegurar la factibilidad del horario

# Simultaneous D e l i v e r y and P i c k Up V e h i c l e Routing Problem


with Time window (SDPVRPTW) .
# Problema de r u t e o de v e h i c u l o s de c o l e c t a y e n t r e g a de
manera s i m u l t a n e a con ventanas de tiempo .

#ARCHIVO DE SALIDA EN XHTML


param filename , symbolic : = " 10C4V . svg " ;

Tpicos Especiales en Informtica Terica

7
8

param n i n t e g e r ; #NUMERO DE CLIENTES


param v i n t e g e r ; #NUMERO DE VEHICULOS

70

9
10
11
12
13
14
15

71

#CONJUNTOS
s e t J : = { 1 . . n } ; #CONJUNTO DE CLIENTES
s e t J F : = { 0 } union J ; #cCONJUNTO DE NODOS DIRECTOS
s e t JR : = J union { n + 1 } ; #CONJUNTO DE NODOS INVERSOS
s e t JC : = { 0 } union ( J union { n + 1 } ) ; #CONJUNTO DE TODOS LOS
NODOS
s e t V : = { 1 . . v } ; #CONJUNTO DE VEHICULOS

16
17

20
21

24

27

30
31
32
33
34
35
36

83

41
42

43
44
45

param t { i i n JF , j i n JR } : = c [ i , j ]/VD; #TIEMPO DE VIAJE ENTRE


EL NODO i E j
param d { h i n J } ; #DEMANDA DE ENTREGA DEL CLIENTE h
param p { h i n J } ; #CANTIDAD DE RECOLECCION DEL CLIENTE h
param s { h i n J } ; #TIEMPO DE SERVICIO DEL CLIENTE h
param a { k i n JC } ; #INICIO DEL TIEMPO DE SERVICIO DEL CLIENTE
h
param b { k i n JC } ; #FIN DEL TIEMPO DE SERVICIO DEL CLIENTE h
param M; #UNA CONSTANTE ARBITRARIA MUY GRANDE
param a l ; #UN PARAMETRO QUE INDICA EL INTERCAMBIO ENTRE EL
COSTO DE DESPACHO Y EL COSTO DE VIAJE

48

88

91
92
94
95

53

97
98

101

55
56

104
105
106

108
110
111
113

# RESTRICCION 1 : a t e n d e r a todos l o s c l i e n t e s exactamente


una vez
s . t . R1 { h i n J } : ( sum { i i n J F } ( sum { l i n V} X [ i , h , l ] ) ) = 1 ;

114
115

59
60
61

118
119
120

62
63
64
65

68
69

122
123

125

# RESTRICCION 6 : c a rg a de l o s v e h i c u l o s en r u t a
s . t . R6 { h i n J , hh i n J } : L [ hh] >=(L [ h]d [ hh]+p [ hh]M* (1 (sum { l
i n V}X[ h , hh , l ] ) ) ) ;

p r i n t f " </svg>\n " >> f i l e n a m e ;


p r i n t f " \n " ;
p r i n t f "COSTO TOTAL DE DESPACHO MINIMO EN EL TOUR: %s\n " , a l
* ( sum { l i n V } ( sum { h i n J } ( g [ l ] * X [ 0 , h , l ] ) ) ) ;
p r i n t f " \n " ;
p r i n t f "COSTO TOTAL DE VUAJE MINIMO EN EL TOUR : %s\n " , (1
a l ) * ( sum { i i n J F } ( sum { j i n JR } ( sum { l i n V : i ! = j } ( c [ i , j
] *X[ i , j , l ] ) ) ) ) ;
p r i n t f " \n " ;
printf ( "
ARCO
VEHICULO \n " ) ;
p r i n t f " \n " ;
p r i n t f { i i n JF , j i n JR , l i n V : X [ i , j , l ] } "
%1s %2
s
%10s
\n " , i , j , l ;
p r i n t f " \n " ;

126
127

# RESTRICCION 5 : l a s c a r g a s de l o s v e h i c u l o s luego d e l
primer c l i e n t e
s . t . R5 { h i n J , l i n V } : L [ h] >=( L0 [ l ]d [ h]+p [ h]M* (1 X [ 0 , h , l ] )
);

66
67

121

124

# RESTRICCION 4 : l a s c a r g a s i n i c i a l e s de l o s v e h i c u l o s
s . t . R4 { l i n V } : L0 [ l ]=sum { i i n J F } ( sum { h i n J } ( d [ h ] * X [ i , h , l
]) ) ;

f o r { i i n JF , j i n JR , l i n V : i ! = j and X [ i , j , l ] == 1 }
p r i n t f " < l i n e x1= " "%f " " y1= " "%f " " x2= " "%f " " y2= " "%f " " " &
" s t y l e = " " s t r o k e : blue ; s t r o k e width : 1 " " />\n " ,
x [ i ] * 3 0 , y [ i ] * 3 0 , x [ j ] * 3 0 , y [ j ] * 30 >>
filename ;

116
117

# RESTRICCION 3 : l o s v e h i c u l o s que p a r t e n de DC deben a l


f i n a l r e t o r n a r a CC
s . t . R3 { l i n V } : ( sum { h i n J } X [ 0 , h , l ] ) =(sum { hh i n J } X[ hh , n+1 ,
l ]) ;

f o r { k i n JC }
{
p r i n t f " < t e x t x= " "%f " " y= " "%f " " f i l l = " " b l a c k " " > " "%s " " </
t e x t > " , x [ k ] * 3 0 , y [ k ] * 3 0 , k >> f i l e n a m e ;
p r i n t f " < c i r c l e cx= " "%f " " cy= " "%f " " r= " "%f " " />\n " , x [ k
] * 7 , y [ k ] * 3 0 , 3 0 . 5 >> f i l e n a m e ;
}

109

57
58

p r i n t f " <?xml v e r s i o n = " " 1 . 0 " " s t a n d a l o n e = " " no " " ?>\n " >
filename ; # e s c r i t u r a
p r i n t f " <!DOCTYPE svg PUBLIC " "//W3C//DTD SVG 1.1//EN" " \n
" >> f i l e n a m e ;
p r i n t f " " " h t t p ://www. w3 . org/Graphics/SVG/1.1/DTD/svg11 . dtd "
" >\n " >> f i l e n a m e ;
p r i n t f " <svg width= " " 1000\% " " h e i g h t = " " 1000\% " " v e r s i o n = " "
1 . 0 " " \n " >> f i l e n a m e ;
p r i n t f " xmlns= " " h t t p ://www. w3 . org /2000/ svg " " >\n " >>
filename ;

103

112

# RESTRICCION 2 : l l e g a r y d e j a r a cada c l i e n t e con e l mismo


vehiculo
s . t . R2 { h i n J , l i n V } : ( sum { i i n J F } X [ i , h , l ] ) =(sum { j i n JR } X
[h , j , l ]) ;

#SOLUCION
solve ;

102

# RESTRICCIONES

54

# RESTRICCION 14 : a s e g u r a r l a f a c t i b i l i d a d d e l h o r a r i o
s . t . R14 { l i n V } : Tn1 [ l ] <=b [ n + 1 ] ;

96

107

#FUNCION OBJETIVO : MINIMIZAR EL COSTO TOTAL DE DESPACHO Y


EL COSTO TOTAL DE VIAJE
minimize Z : a l * ( sum { l i n V } ( sum { h i n J } ( g [ l ] * X [ 0 , h , l ] ) ) )
+(1 a l ) * ( sum { i i n J F } ( sum { j i n JR } ( sum { l i n V } ( c [ i , j ] *
X[ i , j , l ] ) ) ) ) ;

# RESTRICCION 13 : a s e g u r a r l a f a c t i b i l i d a d d e l h o r a r i o
s . t . R13 { h i n J } : a [ h] <=T [ h] <=b [ h ] ;

93

100

var L0 { l i n V } ; #CARGA DEL VEHICULO l CUANDO DEJA DC


var L { h i n J } ; #CARGA RESTANTE DE UN VEHICULO LUEGO DE HABER
ATENDIDO AL CLIENTE j
var X { i i n JF , j i n JR , l i n V} , b i n a r y ; #VARIABLE DE VIAJE DE
UN VEHICULO l S I VIAJA DIRECTAMENTE DEL NODO i AL NODO
j
var T { h i n J } ; #TIEMPO DE EMPEZAR A SERVIR AL CLIENTE h
var T0 { l i n V } ; #TIEMPO A PARTIR DEL VEHICULO l EN DC
var Tn1 { l i n V } ; #TIEMPO DE LLEGADA DEL VEHICULO l A CC

# RESTRICCION 12 : a s e g u r a r l a f a c t i b i l i d a d d e l h o r a r i o
s . t . R12 { l i n V } : a [0] <= T0 [ l ] ;

90

51
52

# RESTRICCION 11 : a s e g u r a r l a f a c t i b i l i d a d d e l h o r a r i o
s . t . R11 { h i n J , l i n V } : ( T [ h]+ s [ h]+ t [ h , n+1] M* (1 X[ h , n+1 , l ] )
) <=Tn1 [ l ] ;

87

99

49
50

86

#VARIABLES DE DECISION

46
47

85

89

39
40

# RESTRICCION 10 : a s e g u r a r l a f a c t i b i l i d a d d e l h o r a r i o
s . t . R10 { h i n J , hh i n J } : ( T [ h]+ s [ h]+ t [ h , hh]M* (1 (sum { l i n V
} X [ h , hh , l ] ) ) ) <=T [ hh ] ;

84

#PARA HALLAR LA DISTANCIA ENTRE LOS VERTICES ( DISTANCIA


EUCLIDIANA) , d i s t a n c i a e n t r e e l nodo i e j (Km)
param c { i i n JF , j i n JR } : = s q r t ( ( x [ i ] x [ j ] ) ^2 + ( y [ i ] y
[ j ] ) ^2) ;

37
38

# RESTRICCION 9 : a s e g u r a r l a f a c t i b i l i d a d d e l h o r a r i o
s . t . R9 { h i n J , l i n V } : ( T0 [ l ]+ t [ 0 , h]M* (1 X [ 0 , h , l ] ) ) <=T [ h ] ;

81

28
29

76

82

param q { l i n V } ; #CAPACIDAD DEL VEHICULO l


param g { l i n V } ; #COSTO DE DESPACHO DEL VEHICULO

# RESTRICCION 8 : r e s t r i c c i o n e s de l a capacidad de l o s
vehiculos
s . t . R8 { h i n J , l i n V } : L [ h] <=q [ l ]+M* (1 (sum { i i n J F }X[ i , h , l
]) ) ;

75

80

25
26

74

79

param x { k i n JC } ; #COORDENADAS EN X DE LOS NODOS


param y { k i n JC } ; #COORDENADAS EN Y DE LOS NODOS
param VD: = 3 0 ; # VELOCIDAD POR DEFECTO (KPH)

22
23

73

78

18
19

72

77

#PARAMETROS

# RESTRICCION 7 : r e s t r i c c i o n e s de l a capacidad de l o s
vehiculos
s . t . R7 { l i n V } : L0 [ l ] <=q [ l ] ;

128
129

#DATOS
data ;
...

Listing 1. Implementacion en GLPK

Tpicos Especiales en Informtica Terica

C. Aplicacin

Dentro de la empresa Lindley SA, la Gestion de Residuos Solidos y Reciclaje es un punto muy importante. El compromiso
de proteccion del ambiente es esencial para la calidad de vida
de las generaciones actuales y venideras. El reto se encuentra
en combinar este compromiso con los objetivos de crecimiento
economico de la Empresa. Corporacin Lindley asume este
reto, entre otras acciones, reduciendo el uso de materiales para
la produccion y promoviendo una cultura de reciclaje, un adecuado manejo de los residuos solidos, peligrosos y no peligrosos,
y desarrollando proyectos que reduzcan la generacion de los
mismos, buscando contribuir con el equilibrio ecologico y el
bienestar de la comunidad. De los materiales empleados y los
que son factibles de reciclar y reutilizar por la Empresa (materiales valorizados), se han tomado en cuenta los de envasado y
embalaje, de los cuales el vidrio y el cartn presentan materiales
valorizados. As tenemos que el cartn posee hasta un 15% de
material valorizado y el vidrio hasta un 20%, lo que representa
el 6.28% de los materiales valorizados por la Empresa.
Se tomaron como datos de procesamiento a 8 clientes y 2
depositos, uno de colecta y otro de entrega en diferentes ubicaciones, como se muestra en la figura S1, el codigo de la programacion del modelo en GLPK se encuentra en el Anexo 1, y se
obtuvieron los siguientes resultados:
1
2

Fig. S1. Mapa de Ubicaciones de los clientes y deposito cen-

tral.

Fig. S2. Mapa de Ubicaciones de los clientes y depositos de

Time used :
0.1 secs
Memory used : 0 . 8 Mb ( 8 8 0 3 3 1 b y t e s )

colecta y entrega.

Costo t o t a l de despacho minimo en e l t o u r : 70

experimentos se ejecutan en una computadora con procesador


Intel Huron River SV Platform, Only support DC (35W), Core
i3-2620M:4M, 1333 MHz DDR3, GT2, 650-1300 MHz GfxTurbo
con 3Gb de Memoria RAM.

3
4
5
6

Costo t o t a l de v i a j e minimo en e l t o u r : 1110

7
8

Arco

Vehiculo

9
10
11
12
13
14
15
16
17
18
19

0
0
1
2
3
4
5
6
7
8

3
5
9
1
2
9
7
4
8
6

2
1
2
2
2
1
1
1
1
1

Listing 2. Resultados Obtenidos

A. Resultados Obtenidos

La siguiente tabla S1 muestra algunos resultados obtenidos de


las pruebas ejecutadas, con datos del Benchmark de Solomon
para 50 puntos , RC208.

Table S1. Evaluacion de Resutados

Numero de Clientes

Numero de Vehiculos

T.E. / M.U.

c=4

v=2

0.1 secs , 0.3 Mb

4. RESULTADOS COMPUTACIONALES

c=6

v=3

8.5 secs , 1.3 Mb

Dado que no ha habido ningn estudio con problemas de prueba


que se dedica a SDPPTW, para su evaluacin, este estudio genera algunos problemas de prueba SDPPTW que se revisaron
de puntos de referencia de los clientes mas concurrentes de la
empresa, aunque la informacion no esta al alcance de cualquier
estudiante. C: con los clientes agrupados cuyas ventanas tiempo
se generaron sobre la base de una solucin conocida.
R: con ubicaciones de los clientes genera uniformemente al azar
sobre un cuadrado.
RC: con una combinacin de azar y colocado en clster clientes.
donde :
Tipo 1, tiene ventanas de tiempo estrechas y pequea capacidad
del vehculo, y
Tipo 2, tiene grandes ventanas de tiempo y capacidad de los
vehculos de gran tamao.
Se compararon los resultados con una funcion de objetivo
jerrquico donde el objetivo principal es reducir al mnimo el
nmero de de los vehculos y el objetivo secundario es minimizar la distancia total o tiempo de desplazamiento. Todos los

c=8

v=3

30.5 secs , 1.9 Mb

c = 10

v=4

158.5 secs , 10.3 Mb

c = 25

v = 10

213.4 secs, 14.1Mb

La figura S2 Muestra el resultado obtenido grficamente.

T.E. : Tiempo de Ejecucion (segundos)


M.U. : Memoria Utilizada (Mb)

5. CONCLUSIONES
Los problemas de entrega y colecta simultneos han llamado
mucho la atencion en los ultimos aos, especialmente para hacer
frente con el reciclaje y cuestiones relativas al medio ambiente.
Los clientes, en realidad, la solicitud de tiempo de servicio especfico; con el fin de aumentar la calidad del servicio, las empresas
de logistica a menudo proporcionan servicios para satisfacer
esas peticiones. Por tanto, este estudio considera un problema
de enrutamiento de vehiculos con entrega y colecta simultanea

Tpicos Especiales en Informtica Terica

con ventanas de tiempo y formulado el problema en un modelo


de programacin entera binaria mixta denotado por SDPPTW.
Debido a la naturaleza del problema NP, No habia puntos de
referencia existentes, este estudio genero algunos problemas
de prueba que han sido revisados desde el punto de referencia
de Salomon conocida por como Problema de Ruteo de Vehiculos con Ventana de Tiempo (VRPTW). Las comparaciones entre
los resultados de software GUSEK, podria ofrecer mejores soluciones en un plazo relativamente corto de tiempo.

38

39
40

41
42
43

REFERENCES
1. Ai, T. J., Kachitvichyanukul, V. (2009) A particle swarm optimization for the vehicle routing problem with simultaneous
pickup and delivery Computers and Operations Research 36
, 16931702.
2. Alvarenga, G. B., Mateusb, G. R., De Tomi, G. (2007) A
genetic and set partitioning two-phase approach for the vehicle routing problem with time windows Computers and
Operations Research 34, 15611584.

44
45
46
47
48
49
50
51

Implementacion del Modelo para el caso aplicativo de la Empresa Lindley SA :


1

param filename , symbolic : = "SDPPTWMaps . svg " ; # a r c h i v o de


salida

2
3

53

4
5
6
7
8
9
10
11

J : = { 1 . . n } ; # c o n j u n t o de c l i e n t e s
J F : = { 0 } union J ; # c o n j u n t o de nodos d i r e c t o s
JR : = J union { n + 1 } ; # c o n j u n t o de nodos i n v e r s o s
JC : = { 0 } union ( J union { n + 1 } ) ; # c o n j u n t o de todos l o s
nodos
s e t V : = { 1 . . v } ; # c o n j u n t o de v e h i c u l o s
s e t Arc : = { i i n JC , j i n JC } ; # c o n j u n t o de a r c o s e n t r e l o s
nodos d i r e c t o s e i n v e r s o s

16
17
18
19
20
21
22
23
24
25

param VD: = 3 0 ; # v e l o c i d a d por d e f e c t o (KPH)

28
29

30
31
32

q { l i n V } ; # capacidad d e l v e h i c u l o l
g { l i n V } ; # c o s t o de despacho d e l v e h i c u l o l
c { ( i , j ) i n Arc } ; # d i s t a n c i a e n t r e e l nodo i e j (Km)
t { i i n JF , j i n JR } : = c [ i , j ]/VD; # tiempo de v i a j e e n t r e
e l nodo i e j
param d { h i n J } ; #demanda de e n t r e g a d e l c l i e n t e h
param p { h i n J } ; # c a n t i d a d de r e c o l e c c i o n d e l c l i e n t e h
param s { h i n J } ; # tiempo de s e r v i c i o d e l c l i e n t e h
param a { k i n JC } ; # i n i c i o d e l tiempo de s e r v i c i o d e l c l i e n t e
h
param b { k i n JC } ; # f i n d e l tiempo de s e r v i c i o d e l c l i e n t e h
param M; #una c o n s t a n t e a r b i t r a r i a grande
param a l ; #un parametro que i n d i c a e l i n t e r c a m b i o e n t r e e l
c o s t o de despacho y e l c o s t o de v i a j e

37

61

p r i n t f " \n " ;
p r i n t f " Costo t o t a l de despacho minimo en e l t o u r : %s\n " , a l
* ( sum { l i n V } ( sum { h i n J } ( g [ l ] * X [ 0 , h , l ] ) ) ) ;
p r i n t f " \n " ;
p r i n t f " Costo t o t a l de v i a j e minimo en e l t o u r : %s\n " , (1 a l
) * ( sum { i i n J F } ( sum { j i n JR } ( sum { l i n V : i ! = j } ( c [ i , j ] * X
[ i , j , l ]) ) ) ) ;
p r i n t f " \n " ;
printf ( "
Arco
Vehiculo \n " ) ;
p r i n t f " \n " ;
p r i n t f { i i n JF , j i n JR , l i n V : X [ i , j , l ] } "
%1s %2
s
%10s
\n " , i , j , l ;
p r i n t f " \n " ;
data ;

63
64
65

#NUEMRO DE CLIENTES
param n : = 8 ;

66
67
68

#NUMERO DE VEHICULOS
param v : = 3 ;

69
70
72
74
75
76
77
78
79
80
81

#VENTANA DE TIEMPO ,
param :
a
0
0
1
912
2
825
3
65
4
727
5
15
6
21
7
170
8
255
9
1236

a : INCIO , b : FIN
b:=
1236 # DEPOSITO DE DISTRIBUCION
967
870
146
782
67
702
225
324
1 5 5 0 ; #DEPOSITO DE COLECTA

82
83
84
85
86
87

# q : CAPACIDAD , g : COSTO DE DESPACHO DE VEHICULO


param : q
g:=
1
200
70
2
200
70
3
200
70;

89
90
91
92
93
94
95
96
97
98

minimize Z : a l * ( sum { l i n V } ( sum { h i n J } ( g [ l ] * X [ 0 , h , l ] ) ) )


+(1 a l ) * ( sum { i i n J F } ( sum { j i n JR } ( sum { l i n V } ( c [ i , j ] *
X[ i , j , l ] ) ) ) ) ; # minimizar e l c o s t o t o t a l de despacho y
e l c o s t o t o t a l de v i a j e

35
36

59

88

var L0 { l i n V } ; # c a r ga d e l v e h i c u l o l cuando d e j a DC
var L { h i n J } ; # c a r ga r e s t a n t e de un v e h i c u l o luego de haber
atendido a l c l i e n t e j
var X { i i n JF , j i n JR , l i n V} , b i n a r y ; # v a r i a b l e de v i a j e de
un v e h i c u l o l s i v i a j a d i r e c t a m e n t e d e l nodo i a l nodo
j
var T { h i n J } ; # tiempo de empezar a s e r v i r a l c l i e n t e h
var T0 { l i n V } ; # tiempo de p a r t i r d e l v e h i c u l o l en DC
var Tn1 { l i n V } ; # tiempo de l l e g a d a d e l v e h i c u l o l a CC

33
34

58

73

param
param
param
param

26
27

57

71

14
15

56

62

set
set
set
set

12
13

55

60

param n i n t e g e r ; # c a n t i d a d de c l i e n t e s
param v i n t e g e r ; # c a n t i d a d de v e h i c u l o s

solve ;

52
54

ANEXOS

s . t . R3 { l i n V } : ( sum { h i n J } X [ 0 , h , l ] ) =(sum { hh i n J }X[ hh , n+1 ,


l ] ) ; # l o s v e h i c u l o s que p a r t e n de DC deben a l f i n a l
r e t o r n a r a CC
s . t . R4 { l i n V } : L0 [ l ]=sum { i i n J F } ( sum { h i n J } ( d [ h ] * X[ i , h , l
] ) ) ; # l a s c a r g a s i n i c i a l e s de l o s v e h i c u l o s
s . t . R5 { h i n J , l i n V } : L [ h] >=( L0 [ l ]d [ h]+p [ h]M* (1 X [ 0 , h , l ] )
) ; # l a s c a r g a s de l o s v e h i c u l o s luego d e l primer
cliente
s . t . R6 { h i n J , hh i n J } : L [ hh] >=(L [ h]d [ hh ]+p [ hh]M* (1 (sum { l
i n V} X [ h , hh , l ] ) ) ) ; # c a r g a de l o s v e h i c u l o s en r u t a
s . t . R7 { l i n V } : L0 [ l ] <=q [ l ] ; # r e s t r i c c i o n e s de l a capacidad
de l o s v e h i c u l o s
s . t . R8 { h i n J , l i n V } : L [ h] <=q [ l ]+M* (1 (sum { i i n J F }X[ i , h , l
]) ) ;
s . t . R9 { h i n J , l i n V } : ( T0 [ l ]+ t [ 0 , h]M* (1 X [ 0 , h , l ] ) ) <=T [ h ] ; #
asegurar l a f a c t i b i l i d a d del horario
s . t . R10 { h i n J , hh i n J } : ( T [ h]+ s [ h]+ t [ h , hh]M* (1 (sum { l i n V
} X [ h , hh , l ] ) ) ) <=T [ hh ] ;
s . t . R11 { h i n J , l i n V } : ( T [ h]+ s [ h]+ t [ h , n+1] M* (1 X[ h , n+1 , l ] )
) <=Tn1 [ l ] ;
s . t . R12 { l i n V } : a [0] <= T0 [ l ] ;
s . t . R13 { h i n J } : a [ h] <=T [ h] <=b [ h ] ;
s . t . R14 { l i n V } : Tn1 [ l ] <=b [ n + 1 ] ;

99
100

#d : DELIVERY ,
param : d
p
1
10
5
2
30
15
3
10
5
4
10
5
5
10
5
6
20
10
7
20
10
8
20
10

p : PICKUP , s : TIEMPO DE SERVICIO


s :=
90
90
90
90
90
90
90
90;

101
102

param M: = 5 0 0 0 0 ;

103

s . t . R1 { h i n J } : ( sum { i i n J F } ( sum { l i n V} X [ i , h , l ] ) ) = 1 ; #
a t e n d e r a todos l o s c l i e n t e s exactamente una vez
s . t . R2 { h i n J , l i n V } : ( sum { i i n J F } X [ i , h , l ] ) =(sum { j i n JR } X
[ h , j , l ] ) ; # l l e g a r y d e j a r a cada c l i e n t e con e l mismo
vehiculo

104

param a l : = 0 . 5 ;

105
106

#INICIA EN JR SAN MARTIN CON JR . BOLOGNESI

Tpicos Especiales en Informtica Terica

107

108
109
110
111
112
113
114
115
116
117

param c :
0
1
2
3
4
5
6 7
8
9:=
#MATRIZ DE COSTOS DE DISTANCIAS ENTRE NODOS , c = d
/100
0 0 130 260 130
280 400
434 546 716 890
1 130
0
130 270
150 256
300 431 584 398
2 260 130 0
130
270 141
440 306 452 282
3 130 270 130
0 400 252
564 444 593 396
4 280 150 270 400 0
121
171 285 448 262
5 409 255 135 289
118 0
293 175 313 138
6 453 315 430 577
181 293
0 113 272 442
7 573 432 315 440
300 176
123 0
142 327
8 724 580 451 587
451 317
272 139 0
170
9 525 398 268 408
266 148
469 311 178 0 ;

118
119

end ;

Listing 3. Implementacion del caso aplicativo de la Empresa

Lindley SA en GLPK

También podría gustarte