Documentos de Académico
Documentos de Profesional
Documentos de Cultura
FACULTAD DE INGENIERÍA
OBJETIVO GENERAL
Implementar métodos de optimización para un problema de Pickup and Delivery en una
empresa de bicicletas compartidas.
OBJETIVOS ESPECIFICOS
Comprender los distintos tipos de problemáticas orientadas al ruteo de vehículos a
través de una exhaustiva investigación.
Identificar los principales factores que estructuran el problema de distribución de
bicicletas y encontrar los métodos más efectivos para su resolución.
Utilizar las distintas herramientas tecnológicas que estén capacitadas para resolver el
problema para diferentes instancias.
Conseguir resultados que estén acorde con los parámetros del problema y así
discutirlos para evaluar y comparar la calidad de los resultados en cada método
utilizado.
MARCO TEORICO
Debido a que el problema abordado en este informe consiste en la minimización de la
distancia total recorrida se inició la revisión bibliográfica desde todos aquellos métodos de la
investigación operativa que buscan la optimización de distancias dentro de la creación de una
ruta definida a recorrer.
El método más conocido que se dedica al diseño de rutas para un problema de ruteo es el del
vendedor viajero o conocido por su nombre en inglés, Travelling Salesman Problem (TSP)
utilizado para crear una ruta cuando se tiene una parada fija visitando un conjunto de nodos
conocidos.
El TSP es la base del problema de ruteo de vehículos denominado Vehicle Routing Problem
(VRP), esto se debe a que el VRP es una generalización del TSP, pero genera un numero de
rutas n>1. Vehicle Routing Problem es un problema de optimización combinatoria que busca
encontrar el punto óptimo de rutas para una n cantidad de vehículos que debe satisfacer la
demanda de un conjunto dado de clientes.
Durante años posteriores, distintos autores fueron realizando nuevos estudios del VRP de los
cuales se crearon variaciones de este problema con el objetivo de aumentar las capacidades
de optimización, agregando nuevas condicionantes al problema.
A continuación, se nombran las variantes que frecuentemente son más utilizadas:
Parámetros
Variables de Decisión
Función Objetivo
Restricciones
Luego, para el planteamiento del problema se debe seguir los siguientes pasos:
PARÁMETROS
Q=Capacidad maxima de bicicletas que se van a transportar
Ri=Demanda del punto i .Con R i> 0 significa que en el punto i se recogen
bicicletas
D ij =Distancias del punto i al punto j
FUNCIÓN OBJETIVO
Min ∑ ∑ X ij∗D ij (1)
i ∈V j ∈V
∑ X ij=1 ; ∀ i ≠ j ∈V ( 2)
j ∈V
R Pij =0 ∀ i , j ; i=1(4)
∑ X 1 j =1(7)
j ∈V
U 1=1( 8)
Ui=¿ 2; ∀i ≠ j ∈V (9)
La ecuación (1) expresa la función objetivo . Esta busca minimizar la distancia total
que recorre el camión con las bicicletas entre los nodos que estén conectados. La restricción
(2) hacen referencia que solo se puede entrar y salir de punto como máximo. La restricción
(3) corresponde a la conservación de flujo del modelo. La restricción (4) indica que lo que se
lleva al primer nodo visitado es cero. La restricción (5) indica que el flujo en cada arco
recorrido por el camión debe menor o igual la capacidad máxima bicicletas transportadas por
camión (Q). La restricción (6) establece que lo que se lleva de punto i al punto j corresponde
a la demanda del punto. La restricción (7) obliga que el camión inicie su ruta en el depósito.
Las restricciones (8), (9), (10) y (11) evitan que se formen subtours. (12), (13) y (14)
establecen la naturaleza de las variables utilizadas.
METODO HEURÍSTICA GOLOSA
Los problemas de optimización que frecuentemente suelen ser resueltos por métodos
exactos que derivan de las diferentes técnicas de la investigación operativa, crecen en
complejidad a medida que el número de iteraciones necesarias para obtener la solución
óptima aumenta. Esto se puede generar por el incremento del volumen de los datos trabajados
o por la complejidad de las restricciones. Es por ello que se requiere muchas veces de otros
métodos que generen una solución óptima sin garantizar que sea la solución óptima global del
problema, estos métodos son conocidos como algoritmos heurísticos.
Una heurística es una técnica que busca soluciones buenas (casi óptimas) en un
tiempo razonable, aunque sin garantizar su grado de cercanía al óptimo (Reeves,1993).
Las heurísticas pueden ser clasificadas como constructivas, estas sirven para generar
una solución desde cero o para construir otras heurísticas. Tienen dos categorías, la primera
es la heurística golosa, la cual no considera decisiones pasadas y la segunda son las
heurísticas backtracking, la cual si considera soluciones pasadas y por tanto consigue mejores
soluciones.
A continuación, se presenta una heurística constructiva golosa que construye la
solución para relocalizar bicicletas de un punto a otro si es necesario, poniendo como dos
grandes prioridades la búsqueda del nodo siguiente con menor distancia y manteniendo la
condición de tener siempre suficientes bicicletas disponibles para satisfacer los puntos con
faltantes. A medida que el camión visita cada nodo va generando la ruta hasta eventualmente
completar todos los nodos y debe regresar al depósito.
Debe iniciar en cero y posee un contador donde se suman las bicicletas añadidas o se
restan cuando son entregadas. Se termina la heurística cuando ya no hay más bicicletas que
entregar o recoger y por lo tanto cualquier otro recorrido ya no está dentro de algún conjunto
factible.
La construcción de la heurística golosa se presenta en la Figura 1, mediante esta
construcción presentada en la Figura 1, se realizo la programación de la heurística golosa en
el software Visual Basic extensión de Microsoft Excel.
Figura 1: Diagrama descriptivo de la Heurística golosa para la reubicación de las bicicletas.
MÉTODO HEURÍSTICA DE BUSQUEDA LOCAL
Se utilizó la Heurística de Búsqueda local, que es la base de muchos de los métodos
usados en problemas de optimización. Se puede ver como un proceso iterativo que empieza
en una solución y la mejora realizando modificaciones locales. Empieza con una solución
inicial y busca en su vecindad una mejor solución. Si la encuentra, reemplaza su solución
actual por la nueva y continúa con el proceso, hasta que no se pueda mejorar la solución
actual (Daskin, 1995).
Para la realización de la heurística de búsqueda local se consideró una ruta inicial
factible, esta heurística de mejora realiza el intercambio de los demás nodos disponibles en
una posición m, siempre y cuando el intercambio mantenga la factibilidad. Cabe destacar que
esta heurística es de tipo exhaustiva, por lo tanto, realiza un intercambio en todos los nodos
que mantengan la condición de factibilidad, terminada la búsqueda en la posición m, repite el
mismo procedimiento hasta acabar con todas las posiciones m restantes. La condición de
termino es cuando ya no existen más posiciones m que intercambiar.
Esta heurística garantiza que la nueva ruta encontrada será mejor o igual que la
solución anterior encontrada o en su defecto la ruta inicial, con la virtud de siempre mantener
que la solución final sea factible.
La construcción de la heurística golosa se presenta en la Figura 2, mediante esta
construcción presentada en la Figura 2, se realizó la programación de la heurística de
búsqueda local en el software Visual Basic extensión de Microsoft Excel.
Figura 2: Diagrama descriptivo de la Heurística de Búsqueda Local para la reubicación de
las bicicletas.
CASO GENERAL PARA REUBICACIÓN DE BICICLETAS.
El caso general hace referencia a la implementación del servicio de bicicletas compartidas
ubicadas en diferentes puntos de una cuidad, para optimizar el servicio de reubicación de
bicicletas en cualquier cuidad que se requiera aplicar, se requieren ciertas condiciones
mínimas para de resolver el problema. Estas condiciones son:
Realizar una macro localización, que permita definir y acotar el área o zona sobre la
cual se van a realizar las diferentes rutas.
Conocer la distancia de todas las cuadras pertenecientes al área definida en el punto
anterior.
1. Definir un área donde se desea implementar el sistema de ruteo bicicletas ya sea un
país, una cuidad, comuna o un sector especifico.
2. Conocer las distancias de todas las cuadras pertenecientes al área definida en el paso
1.
3. Conocer la orientación de todas las cuadras pertenecientes al área definida en el paso
1.
4. Definir la ubicación del depósito de donde saldrá y llegará el camión.
5. Definir el número de puntos de recogida y de entrega que dispondrá la empresa y a su
vez la cantidad de bicicletas disponibles para cada punto según un estudio de mercado
para este servicio.
6. Conformar la matriz de distancias
7. Posicionarse en un nodo y a través de ese nodo realizar el cálculo de distancias
respecto a los demás nodos ubicados en el área, siempre buscando la distancia
mínima entre un nodo y otro. Esto debe realizarse hasta cuando ya no queden nodos
por calcular su distancia.
8. Simultáneamente con el paso 7 los cálculos de distancias realizados entre nodos deben
ser tabulados en la matriz de distancias, hasta completar la totalidad de esta.
9. Lo anteriormente mencionado es para un solo día, pero en el caso que se requiera
realizar una implementación de este sistema todos los días, los valores de la matriz de
distancia se mantendrán y solo los puntos de recogida y entrega irán variando.
RESULTADOS Y DISCUSIÓN
Programación DEPOSITO-G-F-A-
Lineal B-C-H-L-M-I-E-J-O- 111.0 km 00:00:01 seg.
S-R-T-P-DEPOSITO
Heurística Golosa DEPOSITO-F-B-G-
C-H-M-L-I-E-J-O- 123.9 km 00:00:01 seg.
S-R-T-A-P-
DEPOSITO
Heurística de DEPOSITO-F-B-G-
búsqueda local C-H-M-L-I-E-J-O- 123.9 km 00:00:05 seg.
S-R-T-A-P-
DEPOSITO
Programación
Lineal - Indefinido
Heurística Golosa 357,2 00:00:24 seg.
Heurística de 334,4 00:30:00 min.
búsqueda local
CONCLUSIONES Y RECOMENDACIONES
Tras el desarrollo de todo el trabajo, que tuvo como objetivo optimizar el diseño de rutas para
una empresa dedicada al rubro de recogida y entrega de bicicletas compartidas se concluyó
que el método exacto entrega la mejor solución en cuanto a distancia total de la ruta
generada, sin embargo, el nivel de complejidad aumenta cuando la cantidad de nodos de
recogida y entrega aumenta. De este modo se recomienda emplear esta técnica de
optimización para instancias pequeñas, ya que entrega el óptimo global dentro un tiempo de
ejecución razonable.
La técnica de optimización para instancias de mayor tamaño que se recomienda emplear es
una heurística constructiva que garantice la factibilidad de la solución a la par que minimiza
la distancia que recorre. La solución de una heurística constructiva de tipo golosa no
garantiza la obtención de un óptimo global, sin embargo, es una solución buena considerando
la ruta entregada, la distancia total y el tiempo que requiere para dar la solución.
Finalmente, en caso de que se busque una mejora por sobre una ruta inicial factible se
recomienda emplear una heurística de búsqueda local solo si se dispone de suficiente tiempo
antes de requerir la ruta proporcionada como solución. Esto se debe a que el tiempo de
ejecución es significativamente grande. Dependiendo de la capacidad del computador donde
se ejecute le heurística programada en VBA, podría tardar entre 30 a 50 minutos en instancias
de 500 nodos.
ANEXOS
1. Implementación de la programación lineal a través del software Lingo.
De 26, 21, 22, 28, 18, 19, 29, 25, 32, 13, 17, 19, 23, 25, 12, 23,
p 0 6 6 4 23 5 7 6 9 5 5 6 7 1 5 4 13 2 4 31 9,5
12, 13, 15, 14, 16, 20, 17, 23, 26, 22,
A 9 0 3 7 9 15 9 9,8 9 18 19 7,7 9 9 20 9 8,9 2 3 5 4
22, 10, 12, 15, 17, 15, 19, 21, 18, 14, 20, 27, 20,
B 5 13 0 4 6 12 9 6,8 9 15 16 3 5 5 9 8 5 2 3 4 9
18, 11, 10, 11, 13, 14, 10, 16, 19, 16,
C 5 9 9,8 0 2 8 6,9 2,8 8,9 11 12 3 9 5 13 9 5 2 3 5 9
23, 10, 15, 11, 11, 18, 14, 14, 17, 20,
D 9 11 14 4 0 6 9 6,8 6,9 9 10 3 5 9,5 11 9 5 2 3 5 9
19, 11, 16, 12, 19, 11, 18, 13, 11, 25,
E 27 17 3 10 8 0 4 3 7,1 3 4 8 4 9,4 5 5,9 23 7 4 5 4
14, 15, 17, 18, 17, 18, 18, 20, 15, 26, 22,
F 13 7,9 2,9 6,9 8,9 9 0 9,7 8 9 9 8,8 2 4 4 8 9 5 23 4 2
15, 11, 10, 11, 13, 14, 10, 14, 16, 11, 14, 20, 14,
G 7 8 7 2,8 4,8 8 4,1 0 7 8 8 8,5 8,1 1 5 4 7 7,4 9 9 1
20, 15, 12, 10, 13, 14, 16, 11, 14, 18,
H 2 7 2 8 4,7 7 9,3 5,2 0 7 7 13 4,6 2,6 7 8,9 2 9 7,4 5 6
25, 18, 13, 10, 15, 11, 18, 10, 21, 17, 12, 24,
J 7 20 1 9 6 4,8 2 1 5,9 1,8 0 6 2 8,2 3,8 1,9 8 5 2 7,5 2
11, 13, 19, 13, 16, 18, 10, 14, 16, 15, 22, 14,
K 7,2 13 8 3 3 3 5,1 8,5 6 8 6 0 8,4 4 8 7 3,2 7,7 2 3 4
23, 23, 19, 17, 14, 15, 14, 16, 19, 15, 11, 22,
O 9 9 7 5 2 6,9 4 7 8 3,9 5,7 7 8,3 6,3 1,9 0 9 6 1 5,6 3
30, 25, 28, 32, 22, 23, 28, 29, 36, 17, 21, 23, 27, 29, 16, 19, 25, 13,
P 4 6 6 9 27 5 7 6 7 5 5 6 1 1 5 4 0 2 8 1 5
19, 14, 10, 12, 18, 11, 19, 15, 17, 13, 15, 14, 21,
Q 10 2 4 2 2 2 5 7,4 1 7 5 6,6 7,3 9,3 7 6 6 0 1 2 6,7
16, 23, 20, 16, 12, 18, 17, 13, 14, 10, 12, 13, 10, 12, 15, 12,
R 2 6 1 4 6 1 2 1 5 4 2 9 6,7 8,7 8,4 3 2 6,2 0 9 9
22, 29, 26, 21, 18, 13, 23, 19, 14, 10, 18, 12, 12, 10, 12, 12, 18,
S 2 6 1 9 6 2 7 1 3 2 12 8 7 6 8,2 1 2 2 6 0 9
17, 24, 16, 13, 18, 20, 17, 13, 15, 13, 11, 21,
T 1 5 21 8 5 19 1 14 1 16 8 7 7,6 9,6 14 9 1 7,1 8 5 0