You are on page 1of 20

PROBLEMA DEL AGENTE VIAJERO (PAV) Y UNA SOLUCION CON

SOLVER DE EXCEL
ANDRES MAURICIO CAMACHO SANCHEZ
COD. 1032408541
acamachos@ucentral.edu.co

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.
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

 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.
TABLA 1. MATRIZ DE DISTANCIAS, DADAS EN KM.
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:


TABLA 2. MATRIZ DE DISTANCIAS Y MATRIZ DE VARIABLES CON RESTRICCIONES 1 Y 2.
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:
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.
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 1

0 <= 1 2

0 <= 1 3

0 <= 1 4

0 <= 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+C24

2. =E20+I21+D25

3. =M22+F29

4. =J23+G26

5. =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.


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.
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+C24

2. =I20+E25+J21+G26+L23+N28+K30

Solucionando de nuevo obtenemos:


TABLA 6. RESULTADO FINAL, QUE MINIMIZA EL RECORRDIO DEL TOUR.
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.


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.

You might also like