PROBLEMA DEL AGENTE VIAJERO

22
PROBLEMA DEL AGENTE VIAJERO (PAV) Y UNA SOLUCION CON SOLVER DE EXCEL ANDRES MAURICIO CAMACHO SANCHEZ COD. 1032408541 [email protected] RESUMEN Este documento presenta la solución a un caso logístico, un problema de ruteo para un recorrido a nivel nacional. Este caso es modelado como un problema del agente viajero resuelto con la hoja de calculo de Excel. El problema usa informacion actual de las distancias existentes entre una ciudad y otra. Para nuestro caso, manejamos 12 ciudades. OBJETIVO Obtener el resultado de ruteo mas óptimo posible. Para lograr un recorrido mínimo de todas las ciudades partiendo desde una origen y regresando de nuevo a esta. INTRODUCCIÓN El problema del viajante es un ejemplo que muestra y analiza la problemática que subyace tras algunos tipos de problemas matemáticos que a priori parecen tener una solución relativamente fácil, y en la práctica presentan un gran problema. La respuesta al problema es conocida, es decir se conoce la forma de resolverlo, pero sólo en teoría, en la práctica la solución no es aplicable debido al tiempo que computacionalmente se precisa para obtener su resultado (problema de tipo NP-hard). El problema del viajante (también conocido como problema del viajante de comercio o por sus siglas en inglés: TSP) es uno de los problemas más

Transcript of PROBLEMA DEL AGENTE VIAJERO

Page 1: PROBLEMA DEL  AGENTE VIAJERO

PROBLEMA DEL AGENTE VIAJERO (PAV) Y UNA SOLUCION CON SOLVER DE EXCEL

ANDRES MAURICIO CAMACHO SANCHEZCOD. 1032408541

[email protected]

RESUMEN

Este documento presenta la solución a un caso logístico, un problema de ruteo para un recorrido a nivel nacional. Este caso es modelado como un problema del agente viajero resuelto con la hoja de calculo de Excel. El problema usa informacion actual de las distancias existentes entre una ciudad y otra. Para nuestro caso, manejamos 12 ciudades.

OBJETIVO

Obtener el resultado de ruteo mas óptimo posible. Para lograr un recorrido mínimo de todas las ciudades partiendo desde una origen y regresando de nuevo a esta.

INTRODUCCIÓN

El problema del viajante es un ejemplo que muestra y analiza la problemática que subyace tras algunos tipos de problemas matemáticos que a priori parecen tener una solución relativamente fácil, y en la práctica presentan un gran problema.

La respuesta al problema es conocida, es decir se conoce la forma de resolverlo, pero sólo en teoría, en la práctica la solución no es aplicable debido al tiempo que computacionalmente se precisa para obtener su resultado (problema de tipo NP-hard). El problema del viajante (también conocido como problema del viajante de comercio o por sus siglas en inglés: TSP) es uno de los problemas más famosos (y quizás el mejor estudiado) en el campo de la optimización combinatoria computacional. A pesar de la aparente sencillez de su planteamiento, el TSP es uno de los más complejos de resolver y existen demostraciones que equiparan la complejidad de su solución a la de otros problemas aparentemente mucho más complejos que han retado a los matemáticos desde hace siglos.

Sean N ciudades de un territorio. El objetivo es encontrar una ruta que, comenzando y terminando en una ciudad concreta, pase una sola vez por cada una de las ciudades y minimice la distancia recorrida por el viajante.

Page 2: PROBLEMA DEL  AGENTE VIAJERO

La solución más directa es la que aplica la fuerza bruta: evaluar todas las posibles combinaciones de recorridos y quedarse con aquella cuyo trazado utiliza la menor distancia. El problema reside en el número de posibles combinaciones que viene dado por el factorial del número de ciudades (N!) y esto hace que la solución por fuerza bruta sea impracticable para valores de N incluso moderados con los medios computacionales actualmente a nuestro alcance. Por ejemplo, si un ordenador fuese capaz de calcular la longitud de cada combinación en un microsegundo, tardaría algo más 3 segundos en resolver el problema para 10 ciudades, algo más de medio minuto en resolver el problema para 11 ciudades y 77.146 años en resolver el problema para sólo 20 ciudades.

Por ejemplo las rutas posibles entre 12 ciudades son 479.001.600 combinaciones y los caminos individuales entre ciudades son el sumatorio de las 12-1 ciudades es decir 66.

PLANTEAMIENTO DEL PROBLEMA

El problema consiste en determinar la mejor ruta o mínimo recorrido, que se realice entre las 12 ciudades, partiendo desde un punto de partida y regresando a este (ciclo Hamiltoniano), además se tiene que visitar todas las ciudades una sola vez. A continuación se mencionan las ciudades de trabajo:

Bogotá Cali Medellín Pasto Bucaramanga Villavicencio Armenia Valledupar Leticia Yopal Florencia Puerto Inírida

DESARROLLO DEL PROBLEMA

Matemáticamente el modelo se puede expresar así:

Función objetivo:

MIN

Page 3: PROBLEMA DEL  AGENTE VIAJERO

Sujeto a:

Se puede necesitar romper un subciclo, por tanto:

Donde,

Distancia de ir de un lugar i a un lugar j.

Variables binarias de decisión. Toma valor de 1 cuando se selecciona el modo de ir de i a j, o toma 0 cuando ese modo no es seleccionado.

Un subciclo es un circuito formado por un subconjunto del ciclo Hamiltoniano, es decir del ciclo en general. Ejemplo:

Fig 1. Subciclos de 3 y de 9 ciudades

Para dar inicio al desarrollo del problema, partimos de la tabla de datos, con sus respectivas distancias dadas en KM, esta es desarrollada en la hoja de cálculo de Excel.

Page 4: PROBLEMA DEL  AGENTE VIAJERO

TABLA 1. MATRIZ DE DISTANCIAS, DADAS EN KM.

Page 5: PROBLEMA DEL  AGENTE VIAJERO
Page 6: PROBLEMA DEL  AGENTE VIAJERO

Para dar solución al problema, es modelado en la hoja de cálculo Excel. En la siguiente tabla, se presenta una matriz de distancias, como la anterior, en el rango C5:N16. Y una matriz de celdas variables, en el rango C19:N30. Las restricciones 1 y 2 del modelo matemático se representa en los rangos C35:N35, que son básicamente la suma de las columnas respectivas, y a su vez, son igualadas al valor del rango C34:N34, es decir a 1.

Por ejemplo, en la celda C35, realizamos la formula de ( =suma(C19:C30)), luego le damos ENTER, el valor inicial que toma antes de resolverlo todo es de 0, después en el solucionario solver, utilizamos el valor asignado, es decir 1, que se encuentre en la parte superior C34, sin embargo lo incluimos para tenerlo en cuenta y evitar futuras confusiones. La otra restricción, es la que está ubicada en el rango Q19:Q30, que son la suma de las filas respectivamente, y también se igualan a 1, valor que se ubica en la parte izquierda.

Lo anterior representa las restricciones 1 y 2, que cumplen las condiciones de: visitar todas las ciudades y que solo se visiten estas una sola vez.

La restricción 3, se utiliza cuando ejecutemos la herramienta solver, herramienta que más adelante será explicada y que simplemente establece, que los valores obtenidos en la matriz de variables solamente serán 1 y 0, lo cual indicara el orden de prioridad de ruteo entre las ciudades.

Por último, la restricción 4, se empleara en el hecho de que se presente algún subciclo, esto ocurrirá en el caso de que de primeras, no nos arroje un ciclo Hamiltoniano bien hecho. O por el contrario, si obtenemos un ciclo bien formado pero queremos reducir aún más la distancia de total de recorrido, en otras palabras seguir minimizando.

A continuación se muestran las tablas:

Page 7: PROBLEMA DEL  AGENTE VIAJERO

TABLA 2. MATRIZ DE DISTANCIAS Y MATRIZ DE VARIABLES CON RESTRICCIONES 1 Y 2.

Page 8: PROBLEMA DEL  AGENTE VIAJERO

Una vez realizada la tabla, procedemos a desarrollarla en la herramienta solver, tener en cuenta si esta aplicación está instalada o no. Una vez ubicada, la abrimos y en la primera opción, donde dice celda objetivo, ubicamos la celda objetivo de nuestra tabla la cual es I:32, celda que previamente tiene

como calculo tiene la siguiente fórmula: ( =suma producto (C5:N16;C19:N30)), esta operación realiza el producto y la suma de la matriz de distancias con la de variables. Esta representa la función objetivo del modelo matemático antes explicado.

Después en la parte de ‘’valor de la celda objetivo’’, escogemos el objetivo de nuestra solución, la cual es el de minimizar, entonces señalamos la opción de mínimo. Seguidamente, en la opción de cambiando las celdas, escogemos el rango de la matriz de celdas variables, la cual es a donde irán los resultados obtenidos. Y en la parte de restricciones, ubicamos las que habíamos hecho en la hoja de cálculo, las cuales son: suma de filas, suma de columnas y una nueva, la que es de establecer la matriz de variables como valores binarios. Por último antes de darle en resolver, vamos a opciones y escogemos la opción

de adoptar modelo lineal y adoptar no negativos, esto con el fin de no obtener resultados negativos; también cambiamos el número de iteraciones a 200 para que este no le arroje errores más adelante en la simulación. Luego damos en aceptar y por ultimo en resolver. Lo cual obtenemos lo siguiente:

Page 9: PROBLEMA DEL  AGENTE VIAJERO
Page 10: PROBLEMA DEL  AGENTE VIAJERO

TABLA 3. RESULTADO ARROJADO POR SOLVER.

Vemos inicialmente que, el resultado que no muestra solver, ya presenta los primeros subciclos los cuales son:

1. Bogotá – Yopal – Villavicencio – Bogotá.2. Cali – Medellín – Armenia – Cali. 3. Pasto – Florencia – Pasto.4. B/manga – Valledupar – B/manga.5. Leticia – Pto Inírida - Leticia.

Page 11: PROBLEMA DEL  AGENTE VIAJERO

Estos subciclos hacen que se tengan que adicionar un conjunto de restricciones para poder romperlos. Las nuevas restricciones se muestran en la siguiente tabla.

0 <= 1 10 <= 1 20 <= 1 30 <= 1 40 <= 1 5

TABLA 4. PRIMERAS RESTRICCIONES PARA EVITAR SUBCICLOS.

Inicialmente valen 0 las restricciones pero a continuación se muestran las formulas empleadas para romper los 5 primeros subciclos respectivamente.

1. =L19+H28+C242. =E20+I21+D253. =M22+F294. =J23+G265. =N27+K30

Lo de la parte derecha es para reflejar que operación se le harán cuando las vayamos a incluir en el solver. Por último volvemos a la aplicación, las agregamos y le damos de nuevo en resolver. Cabe anotar que cada vez que se agreguen restricciones hay que borrar la matriz de variables, esto con el fin de evitar confusiones, ya que se estarían sobrescribiendo los valores.

A continuación obtenemos el siguiente resultado.

Page 12: PROBLEMA DEL  AGENTE VIAJERO

TABLA 5. SOLUCION EVITANDO LOS 5 PRIMEROS SUBCICLOS.

Analizando el segundo resultado, vemos que vuelve a ocurrir subciclos, pero esta vez reducido solamente a dos. Los cuales son:

1. Bogotá – Villavicencio – Bogotá.2. Cali – Armenia – Medellín – Valledupar – B/manga – Yopal – Pto Inírida – Leticia – Florencia – Pasto – Cali.

Page 13: PROBLEMA DEL  AGENTE VIAJERO

Una vez más, se realizan restricciones para evitar estos dos nuevos subciclos, y así sucesivamente si continúan saliendo más, hasta obtener un ciclo bien hecho. Estas dos restricciones son:

1. =H19+C242. =I20+E25+J21+G26+L23+N28+K30

Solucionando de nuevo obtenemos:

TABLA 6. RESULTADO FINAL, QUE MINIMIZA EL RECORRDIO DEL TOUR.

Page 14: PROBLEMA DEL  AGENTE VIAJERO
Page 15: PROBLEMA DEL  AGENTE VIAJERO

Con este nuevo resultado, vemos que ocurre un ciclo completo, es decir nos da una opción clara o aproximada de un posible recorrido, obteniendo un trayecto total mínimo. Sin embargo esta solución no estima que sea la más correcta o la más eficiente, pero si una más aproximada. Para lograr más exactitud, el número de restricciones deben aumentar y por lo tanto la complejidad computacional crecerá linealmente, llevando a que por ejemplo la herramienta del solver no logre ejecutarlo.

Para nuestro ejercicio la secuencia dio de la siguiente manera:

1. Bogotá – Armenia – Cali – Pasto – Florencia – Leticia – Pto Inírida – Yopal – B/manga – Valledupar – Medellín – Villavicencio – Bogotá.

Con un trayecto total de 4621.74Km.

Page 16: PROBLEMA DEL  AGENTE VIAJERO

CONCLUSIONES

El Excel permite modelar fácilmente este tipo de problema presentando algunas limitaciones y dificultades para buscar la solución, como es el caso de estar agregando restricciones.

La herramienta es una alternativa para dar solución a un grupo de empresas que tienen problemas relativamente pequeños y así evitar grandes inversiones en software.

Esta metodología nos da un resultado muy aproximado, no siempre el más óptimo o eficiente, por lo que su análisis y procedimiento es demasiado extenso, lo cual exige mayor complejidad computacional.