Agente ViajeroOOO

27
INSTITUTO TECNOLÓGICO DE APIZACO INGENIERÍA EN GESTIÓN EMPRESARIAL CADENA DE SUMINISTROS AGENTE VIAJERO ALUMNA: ABIGAIL JUÁREZ HERNÁNDEZ

description

AGENTE VIAJEROOOO

Transcript of Agente ViajeroOOO

Captulo 1

INSTITUTO TECNOLGICO DE APIZACO

INGENIERA EN GESTIN EMPRESARIAL

CADENA DE SUMINISTROS

AGENTE VIAJERO

ALUMNA: ABIGAIL JUREZ HERNNDEZ

Planteamiento del problema del Agente Viajero (PAV)

En este captulo se define el Problema del Agente Viajero (PAV) o Traveling Salesman Problem (TSP) a partir de distintas reas que lo han estudiado como lo es la Investigacin de Operaciones (IO) y en especial la optimizacin combinatoria, la teora de la complejidad computacional que definen al PAV como un problema NP-Completo, lo cual significa que es un problema difcil de resolver y otra de las reas es la teora de grficas o de redes que nos ayuda a analizar la estructura del problema del agente viajero como un grafo.

IntroduccinEn primera instancia uno se preguntar, qu es el problema del agente viajero? Porqu se estudia y porque es tan famoso en varios pases? y porqu es tema de divulgacin en este trabajo?

Pues bien, el problema del agente viajero (PAV) o bien traveling salesman problem (TSP) como se conoce a nivel mundial. Es un problema que se estudia en investigacin de operaciones y de manera muy especial en la optimizacin combinatoria. Se utiliza como base para resolver una gran cantidad de problemas que se presentan en la vida real y tambin lo utiliza otra rea como la teora de la complejidad computacional para validar algoritmos que se van descubriendo da con da. Otras de las reas en las que se puede observar el problema del agente viajero es la teora de grficas. En el siguiente esquema se puede observar las tres grandes reas o enfoques que han tomado este problema para su estudio.

Para tener una idea del planteamiento de este problema pensemos en lo siguiente: imagnate un agente viajero o bien una persona que desea visitar un conjunto n de ciudades y que se le dan los costos, las distancias o el tiempo de viajar de una ciudad que le podemos llamar i a una ciudad que le podemos llamar j. Y tiene dos condiciones: regresar a la misma ciudad de la cual parti y no repetir ciudades, es decir, si ya visit la ciudad 3 una vez ya no se puede volver a pasar por esa ciudad. Con el objetivo de encontrar una ruta o un camino que sea el ms corto posible.

Para ayudar al agente viajero a encontrar el camino que es el ms corto dentro de varios caminos podramos pensar en la siguiente solucin.

Supongamos que tenemos n=5 ciudades. Es decir el agente viajero tiene que visitar las ciudades {1, 2, 3, 4, 5} y no necesariamente en este orden! Ahora bien, supongamos que viajar de la ciudad 1 a la 2 le cuesta $3 (y el costo puede estar en funcin de la distancia o bien el tiempo), de viajar de la ciudad 1 a la 3 me cuesta $5, viajar de la ciudad 1 a la 4 me cuesta $7 y de la ciudad 1 a la 5 me cuesta $2. Supongamos que a la inversa tenemos el mismo costo, es decir, que viajar de la ciudad 5 a la 1 me cuesta $2. Ms adelante explicaremos que este problema se le conoce como el problema del agente viajero simtrico. Sabemos que viajar de la ciudad 2 a la 3 me cuesta $4, viajar de la misma ciudad a la ciudad 4 me cuesta $6 y a la ciudad 5 tiene un costo de $3. Viajar de la ciudad 3 a la 4 tiene un costo de $4 y viajar de la ciudad 3 a la 5 cuesta $9. Viajar de la ciudad 4 a la 5 me cuesta $8. Y tambin sabemos que viajar de la ciudad 1 a ella misma no tiene ningn costo, dado que no se le permite regresar a la misma ciudad, en teora de grficas a esto se le conoce como un bucle.

Teniendo los costos de viajar de una ciudad a otra, podemos empezar a resolver nuestro problema.

Una forma en la cual podemos transformar esta informacin es mediante matrices de adyacencia, como se muestra a continuacin. As podremos manejar mejor nuestra informacin.

Con la matriz anterior se pueden resumir los costos de viajar de una ciudad i a otra ciudad j. Por ejemplo de la ciudad 5 a la ciudad 2 tenemos un costo de $3.

Una forma de ayudar al agente viajero a encontrar el camino ms corto es mostrando todas las posibles rutas como se hace a continuacin:

Para la ruta 1, podemos imaginarnos que parta de la ciudad 1 y visite en orden sucesivo las dems ciudades y regresando a la ciudad de la cual parti como se establece en una de las restricciones de nuestro problema. Y acordndonos que no debe visitar una ciudad ms de una vez. De tal manera que la ruta 1 puede establecerse as:

Ruta posible 1: {1, 2, 3, 4, 5, 1}. Lo cual quiere decir que el agente viajero partir de la ciudad 1, enseguida visitar la ciudad 2, despus la 3, luego la 4, enseguida la 5 y por ltimo la 1. Como podemos observar, esta solucin cumple con las dos restricciones que tiene nuestro agente viajero, primera que regrese a la ciudad de la cual parti y segunda, no se repiten las ciudades, lo cual significa que no pas ms de una vez por la misma ciudad. El costo que el agente viajero tiene por elegir esta ruta es de el costo de viajar de la ciudad 1 a la 2 que tiene un costo de $3, ms el costo de viajar de la ciudad 2 a la ciudad 3 que es de $4 ms el costo de viajar de la ciudad 3 a la 4 que es de $7 ms el costo de viajar de la ciudad 4 a la 5 que es de $8 y finalmente el costo de viajar de la ciudad 5 a la ciudad 1 de la cual parti que es de $2. Esto nos da un total de $24. Pero el objetivo es encontrar la ruta ptima, es decir, la ruta ms corta posible o bien con el menor costo, y para pode encontrar esta ruta, es necesario, mostrar todas las rutas posibles y enseguida comparar las soluciones y elegir la menor.

Ahora bien para ayudarnos a ver de manera grfica esta primera solucin nos apoyaremos en una grfica 1.3 en donde los nodos representan las ciudades y los arcos o las aristas representan el camino que une la ciudad i de la ciudad j. Esta es la primer ruta que eligi nuestro agente viajero.

Grfica 1.3 Ruta posible 1 del agente viajeroArmemos la ruta posible 2. Para armar esta ruta, de manera arbitraria, partamos de la ciudad 2 y que de esta ciudad se vaya a la ciudad 4 y despus a la 5, despus a la ciudad 3 y de esta a la 1 y por ltimo que regrese a la 2. Nuevamente esta ruta es una solucin factible dado que cumple con nuestras dos restricciones. Regresar a la ciudad de la cual partimos y no se repiten ciudades.

Esta ruta posible queda as: {2, 4, 5, 3, 1, 2} con un costo de 6+8+9+5+3=$31, con lo cual podemos observar que de la ruta posible 1 a la ruta posible 2 el agente viajero preferira la ruta 1 dado que el costo asociado a esta ruta es menor en $7.

De tal manera que todo el conjunto de soluciones pueden quedar de la manera siguiente:

Ruta 3= {1, 2, 4, 3, 5, 1}= $27

Ruta 4= {1, 2, 3, 5, 4, 1}= $31

Ruta 5= {1, 2, 5, 4, 3, 1}= $26

Ruta 6= {2, 1, 3, 4, 5, 2}= $25

....

Ruta n!= {5, 4, 3, 2, 1, 5}= $24

Veamos como se van construyendo las soluciones. El agente viajero en un principio tiene 5 maneras o formas de elegir su primer ciudad y una vez que se elige una ciudad la solucin se reduce a (n-1)=4 maneras de elegir a la siguiente ciudad de tal manera que tengo n posibilidades de elegir la primera vez, la segunda vez tengo (n-1) la tercera tengo (n-2) posibilidades, la cuarta tengo (n-3), la quinta tengo (n-4) y ya no tengo quinta posibilidad ya que n es el nmero de ciudades que tengo de tal manera que si hubiera una quinta eleccin sera (n-n=0). De tal manera que si queremos saber todo el conjunto de posibilidades tenemos que realizar lo siguiente: y de manera general lo cual implica que el conjunto de soluciones factibles es n!. Ahora si tenemos que n=5 el conjunto de soluciones totales viene dada por n!=120 posibilidades. Imagnate construir 120 rutas posibles! Se vuelve una tarea titnica encontrar todas las soluciones factibles y despus tendramos que comparar todas las soluciones y elegir la ptima (la de menor costo), esto se vuelve una tarea extremadamente ardua.

A este mtodo de solucin se le conoce enumeracin exhaustiva, porque precisamente lo que se hace es mostrar todas las soluciones factibles y de ah se elige la solucin ptima, pero esto requiere de muchos clculos y nos cuesta tiempo, dinero y esfuerzo. De ah que se hayan descubierto formas ms sencillas de resolverlo basndose en la intuicin y el conocimiento emprico, pero no encontrando la solucin si no una buena solucin.

A las tcnicas de enumeracin exhaustiva se les conoce como mtodos de solucin exacta y a los que siguen la segunda metodologa son las tcnicas que conocemos como mtodos heursticos, o bien metaheursticos. En los siguientes apartados se detallar en mayor medida stas tcnicas.

El Problema del Agente Viajero en la Investigacin de Operaciones

Como sabemos la investigacin de operaciones es una herramienta muy poderosa que utiliza modelos matemticos para ayudarnos a tomar mejores decisiones de una manera ptima. Y dentro de la investigacin de operaciones se han planteado distintas herramientas de anlisis como lo son: la programacin entera, la programacin dinmica, simulacin, teora de colas, teora de redes, programacin lineal, la optimizacin combinatoria, etc. Cada una de estas reas que se han desarrollado dentro de la investigacin de operaciones se ha especializado y a adquirido una estructura muy particular de los problemas que resuelve cada una de estas, han desarrollado su propia metodologa en la forma de plantear y resolver problemas, pero el comn denominador de todas stas herramientas es la programacin matemtica como medio para plantear y resolver los problemas. Dentro de estas tcnicas, en especial dentro de la optimizacin combinatoria se encuentra nuestro problema dado la estructura que tiene el problema del agente viajero, es decir, cuanta con las caractersticas de un problema combinatorio. Ms adelante se explicarn con ms detalle las caractersticas de este tipo de problemas.Una de las clasificaciones de la ciencia de la toma de decisiones, se realiza atendiendo al objetivo del problema, existen modelos de optimizacin cuyo objetivo es maximizar cierta cantidad (beneficio, eficiencia) o minimizar cierta medida (costo, tiempo), quizs teniendo en cuenta una serie de limitaciones o requisitos que restringen la decisin (disponibilidad de capital, personal, material, requisitos para cumplir fechas lmite, etc.)

Ejemplos clebres de modelos de optimizacin son: problemas de secuenciacin, de localizacin, problemas de rutas (que es en donde se encuentra el problema del agente viajero), y problemas de bsqueda.

Ahora bien si se clasifican los problemas segn la naturaleza de los datos, en donde se atiende ms bien al tipo de modelo donde encaja el problema. En algunos casos tendremos que ajustar al problema con un modelo determinstico, en el cual todos los datos importantes del mismo se suponen conocidos, pero en otros, algunos de estos datos se consideran inciertos y normalmente vienen dados por una probabilidad por lo que ser necesario la utilizacin de un modelo probabilstico. Sin embargo, existen modelos que conviene tratar como hbridos de estas dos categoras. Dado lo anterior el problema del agente viajero se puede insertar dentro de los modelos determinsticos: Como lo son los modelos de Optimizacin Lineal, Asignacin, Programacin entera, problemas de redes, o dentro de la teora de grficas o bien dentro de los modelos hbridos: en la programacin dinmica.

Descripcin del Problema del Agente Viajero (PAV)El problema a tratar nos da una solucin que tiene doble interpretacin: como un circuito hamiltoniano o como una permutacin. En este sentido, la definicin del problema estar en funcin de la interpretacin que queramos darle.Ahora bien qu es un problema combinatorio?, qu es una permutacin cclica cuadrtica o lineal?, qu es un circuito hamiltoniano?

A continuacin se dar una explicacin de las caractersticas de un problema de optimizacin combinatoria y algunos conceptos de teora de grficas para entender en mayor medida este problema. Y definirlo de una manera formal.

Comencemos por la teora de grficas.

Teora de grficas y el PAV

La teora de grafos se encarga de establecer los fundamentos y bases necesarias para resolver problemas de una determinada complejidad a travs de estructuras matemticas cmo lo son los grafos. Los fundamentos de esta teora se basan en una serie de conceptos que se vern a continuacin.

Una grfica es una pareja , donde es un conjunto finito de nodos o vrtices y los elementos de son subconjuntos de de cardinalidad dos, llamados aristas. Una grfica se denota como y se representa con puntos asociados a los vrtices y lneas asociadas con las aristas. Los vrtices de se denotan como . Una grfica dirigida o digrfica es una grfica con direcciones asignadas a las aristas. Es decir, una digrfica es una pareja donde es un conjunto de vrtices y es un conjunto de parejas ordenadas de vrtices llamados arcos.

La grfica

y la digrfica

se muestra en la figura 1.2.

Figura 1.4 Grfica y digrfica

Obsrvese que se usan corchetes par denotar las aristas y parntesis para denotar los arcos.

Si es una grfica y est en , entonces se dice que es adyacente a (y viceversa) y es incidente tanto a como a . Una grfica es completa si cada par de vrtices son adyacentes. El grado de un vrtice en una grfica es el nmero de aristas incidentes a . Por ejemplo; en la grfica de la figura 1.2, el vrtice de la grfica tiene grado 3.

Una grfica parcial de es la grfica donde . Es decir, una grfica constituida por todos los vrtices y algunas aristas de . En la figura 1.5 se muestra una grfica que es grfica parcial de .

Figura 1.5 Representacin de una grfica G, grfica parcial Gp y una subgrfica GsUna subgrfica de es una grfica donde y si y slo si . Es decir, es una grfica formada por un subconjunto de vrtices de y todas las aristas de que unen los vrtices de este subconjunto. En la figura 1.5 representa una subgrfica de .

Una cadena, en una grfica , es una sucesin de vrtices

, tal que para A se le conoce como cadena de a . Un ciclo es una cadena donde . Considrese la grfica de la figura 1.17, y son ejemplos de cadenas; la ltima es un ciclo. Una grfica es conexa si existe una cadena entre cualquier par de vrtices de la grfica.

Si la grfica es dirigida, la sucesin de vrtices , donde , para se conoce como camino de a . Un circuito es un camino cerrado, es decir un camino donde. El camino de la grfica D, en la figura 1.17, es un circuito. Un circuito hamiltoniano de una grfica G es un circuito que incluye todos los vrtices de G.

En el contexto del problema del agente viajero a este circuito tambin se le conoce como tour. Una grfica es hamiltoniana si contiene un circuito hamiltoniano . Un camino elemental es un camino en donde no se repiten los vrtices. Si los arcos del camino no se repiten se tiene un camino simple. Anlogamente se define cadena simple y cadena elemental.

Los conceptos tratados a continuacin se aplican tanto a grficas como a digrficas. Un rbol es una grfica conexa sin ciclos. En la figura 1.6, la grfica constituye un rbol expandido (de expansin) de G. es decir, un rbol formado con todos los vrtices de G. Figura 1.6 Diferencia entre grafo y rbol de expansin

Sea una grfica. Las siguientes afirmaciones son equivalentes:

1. es un rbol

2. es conexo y tiene aristas

3. no tiene ciclos, pero si se agrega una arista a se genera un nico ciclo

Una grfica ponderada es una grfica junto con una funcin de pesos que va de E a . Los pesos representan costos o distancias.

Definicin del problema del agente viajero como un grafo

Los conceptos presentados con anterioridad permiten enunciar el problema del agente viajero, como un grafo. Supngase que un agente viajero necesita hacer un viaje redondo a travs de una coleccin de ciudades. Qu ruta debe elegir para minimizar la distancia total recorrida? Supngase que es una digrfica ponderada conexa cuyos vrtices representan ciudades, y es el peso del arco que representa la distancia que hay entre las ciudades y . El problema del agente viajero pregunta por el circuito hamiltoniano de menor peso. Si la grfica no es dirigida, es decir, la distancia no depende de la direccin en la que se viaje, entonces se conoce como el problema simtrico del agente viajero mencionado en secciones anteriores. O algunas veces la grfica no es completa, lo que significa que existen parejas de nodos que no estn directamente conectados por arcos. No obstante, que toda grfica completa siempre tiene circuitos de longitud n, una que no lo es puede no tener circuitos de longitud n.

Por ejemplo la grfica en la figura 1.2 no tiene circuitos de longitud 5, en tal caso el problema del agente viajero no tiene solucin. [Flores, 2000]

Figura 1.7 No existe solucin para el problema del agente viajero

El problema de determinar si una grfica dada con n nodos tiene un circuito de longitud n se conoce como un problema de circuito hamiltoniano. Circuito del agente viajero y el circuito hamiltonianoComo se comentaba en el prrafo anterior, un circuito que incluye cada vrtice de la grfica por lo menos una vez, es llamado el circuito del viajero. Y un circuito que incluye cada vrtice de la grfica exactamente una vez, es llamado un circuito hamiltoniano.

Circuito del agente viajero generalEl problema del agente viajero general es el problema de encontrar un circuito hamiltoniano con una duracin total mnima.

Entonces tenemos que un circuito del agente viajero con una duracin mnima es llamado un circuito del viajero ptimo y es una solucin ptima para el problema del viajero general. Un circuito hamiltoniano con una duracin total mnima es llamado circuito hamiltonaino ptimo y es una solucin ptima para el problema del agente viajero. Y un circuito del viajero ptimo no necesariamente es un circuito hamiltoniano ptimo. Por ejemplo, considere la grfica que se muestra en la figura 1.8. El nico circuito hamiltoniano en esta grfica es el cual tiene una duracin total igual a unidades. El circuito del viajero ptimo que pasa a travs de los vrtices doblemente tiene una duracin total igual a unidades.

Esto es, un circuito del viajero ptimo no necesariamente es un circuito hamiltoniano ptimo.

Figura 1.8 Ruta ptima del agente viajero

Cundo un circuito hamiltoniano es la solucin al problema del agente viajero general?

Teorema 1.1 Si para cada par de vrtices en la grfica G,

(1)

entonces un circuito hamiltoniano es una solucin ptima (si la solucin existe) al problema del agente viajero general para la grfica G.

Condicin (1): La distancia que hay de a no es nunca ms que la distancia va cualquier otro vrtice . La condicin (1) es llamada la desigualdad del tringulo.

Prueba: Suponga que la solucin ptima al problema del agente viajero general es llamado un circuito hamiltoniano. Sea cualquier circuito ptimo del agente viajero. Ya que no es circuito hamiltoniano, entonces algunos vrtices llmese, aparecen al menos dos veces en el circuito . Suponga que la primera vez el agente viajero se encuentra en el vrtice y el llega del vrtice y sale al vrtice . Alterando el circuito de tal manera que el viajero viaje de directamente a pasando por . La ruta resultante es tambin un circuito ya que el viajero visita al menos una vez cada vrtice. Por otra parte, por (1), la duracin total de no excede la duracin de. Reemplazando por y repitiendo este argumento, se genera otro circuito del agente viajero ,etc. Eventualmente, este proceso permite un circuito ptimo que es hamiltoniano ya que cada circuito sucesivo tiene un arco menos que su precursor. l.q.q.d.

Del teorema 1.1 se tiene que si la grfica G satisface la desigualdad del tringulo, entonces las soluciones ptimas para el problema del agente viajero de la grfica G son soluciones ptimas del problema del agente viajero general de la grfica G.

Hay una manera simple de ahorrarse problemas innecesarios de desarrollar dos tcnicas de solucin, una para el problema del agente viajero general y otro para el problema del agente viajero. Si la grfica G no satisface la desigualdad del tringulo entonces se reemplaza la duracin de cada arco que falla la desigualdad del tringulo con la duracin de la ruta ms corta de a . Recordando que el arco que va de a representa un viaje directo no ms largo, ahora representa un viaje a lo largo de una trayectoria ms corta de x a y. Ahora satisface la desigualdad del tringulo.

Si una solucin ptima del problema del agente viajero de la grfica G contiene un arco cuya duracin es ms corta como se especific en las lneas anteriores, entonces se reemplaza el arco por una ruta ms corta de a en la solucin ptima. Entonces nicamente necesitaremos tcnicas de solucin para el problema del agente viajero.

Por ejemplo, en la figura 1.8 , . Entonces, (1) falla para el arco . Si la duracin del arco se reduce a 2, la duracin de la ruta ms corta de a , entonces el nico circuito hamiltoniano en la grfica resultante es cuya duracin es . Reemplazando por , nos da el circuito el cual es un circuito del agente viajero ptimo de la grfica original.

No todas las grficas contienen un circuito hamiltoniano. Por ejemplo la grfica que contiene solamente dos vrtices y no contiene un circuito hamiltoniano.Existencia de un circuito hamiltoniano

Como se coment en prrafos anteriores el problema del agente viajero se resuelve encontrando un circuito hamiltoniano ptimo. Desafortunadamente no todas las grficas y consecuentemente, antes de proceder a encontrar un circuito hamiltoniano, se debera de tratar de establecer si la grfica posee cualquier circuito hamiltoniano.

En ste apartado se describen varias condiciones bajo las cuales una grfica posee un circuito hamiltoniano.

Una grfica es llamada fuertemente conectada (completa) si para cualquier par de vrtices y en la grfica siempre hay una ruta o un camino. Un subconjunto de vrtices es llamado subconjunto de vrtices fuertemente conectado si para cualquier par de vrtices y , hay una ruta de a en la grfica y esta contenida en no otro conjunto con la misma propiedad. La subgrfica generada por el subconjunto e vrtices fuertemente conectada es llamada una componente fuertemente conectada de la grfica original.Por ejemplo la grfica 1.8 est fuertemente conectada ya que hay una ruta de un vrtice a cualquier otro vrtice. Ahora considere la grfica 1.9, esta grfica no esta fuertemente conectada porque no hay una ruta del vrtice al vrtice , aunque hay una cadena del vrtice al vrtice , llamado arco . Los vrtices forman una subgrfica fuertemente conectada ya que hay una ruta de cualquier vrtice a cualquier otro vrtice. Ms aun, no puede ser agregado otro vrtice a este conjunto sin perder esta propiedad. Por ejemplo, el vrtice no puede ser agregado al conjunto ya que no hay una ruta del vrtice al vrtice . La subgrfica generada por se muestra en la figura 1.8.

Esta subgrfica es una componente fuertemente conectada de la grfica original. Hay una ruta del vrtice al vrtice y una ruta del vrtice al vrtice . Sin embargo, no es un subconjunto de vrtices fuertemente conectado porque el vrtice puede ser agregado a este conjunto sin perder la propiedad de fuertemente conectada. No se pueden agregar otros vrtices sin perder esta propiedad. Ya que es un subconjunto de vrtices fuertemente conectados. La componente fuertemente conectada generada por tambin se muestra es la figura 1.9.

Figura 1.9 Grfica y componentes fuertemente conectadas

Si la grfica G no es fuertemente conectada, la grfica G no contiene un circuito hamiltoniano. Ya que un circuito hamiltoniano contiene una ruta entre cada par de vrtices en la grfica. As, una condicin necesaria para la existencia de un circuito hamiltoniano es que la grfica G este fuertemente conectada. A continuacin se explica en ms detalle la Optimizacin Combinatoria (OC) que es la rama de la investigacin de operaciones en donde se estudia fuertemente este problema y que adems nos permite otra forma de estructurar el problema adems de cmo un grafo.

Optimizacin Combinatoria

Una caracterstica que tiene el rea de investigacin de operaciones es que intenta encontrar la mejor solucin, o la solucin ptima, al problema bajo consideracin. En lugar de contentarse con slo mejorar el estado de las cosas, la meta es identificar el mejor curso de accin posible. An cuando debe interpretarse con todo cuidado, esta bsqueda de la optimalidad es un aspecto muy importante dentro de la investigacin de operaciones. [www5] Problemas de Optimizacin CombinatoriaLos problemas de optimizacin se dividen de manera natural en dos categoras: problemas de optimizacin con variables continuas y problemas de optimizacin con variables discretas. A estos ltimos se les llama problemas de optimizacin combinatoria. [Gutirrez, 1991].

Un problema combinatorio es aqul que asigna valores numricos discretos a algn conjunto finito de variables X, de tal forma que satisfaga un conjunto de restricciones y minimice o maximice alguna funcin objetivo. [Flores, 2002]Como se trata de encontrar la solucin "mejor" u "ptima" de entre un conjunto de soluciones alternativas. Para resolver grandes problemas de este tipo podemos elegir entre dos caminos. El primero consiste en buscar la optimalidad con el riesgo de tener grandes, posiblemente impracticables, tiempos de computacin; el segundo consiste en obtener soluciones con rapidez, aun con el riesgo de caer en la sub-optimalidad. Entre los que siguen la primera opcin destacan los mtodos de enumeracin y las tcnicas de programacin dinmica, ramificacin y acotamiento, planos de corte, etc. La segunda opcin da lugar a los algoritmos de aproximacin, tambin llamados con frecuencia algoritmos heursticos. [Gutirrez, 1991] Una caracterstica recurrente en los problemas de optimizacin combinatoria es el hecho de que son muy "fciles" de entender y de enunciar, pero generalmente son "difciles" de resolver. Podra pensarse que la solucin de un problema de optimizacin combinatoria se restringe nicamente a buscar de manera exhaustiva el valor mximo o mnimo en un conjunto finito de posibilidades y que usando una computadora veloz, el problema carecera de inters matemtico, sin pensar por un momento, en el tamao de este conjunto. As, por ejemplo, en el problema del agente viajero, en el cual se tiene que salir de una ciudad y regresar a la misma despus de haber visitado (con costo mnimo de viaje) todas las dems ciudades, si se tienen n ciudades en total que recorrer entonces existen (n-1)! soluciones factibles, y si una computadora que pudiera ser programada para examinar soluciones a razn de un billn de soluciones por segundo; la computadora terminara su tarea, para n = 25 ciudades (que es un problema pequeo para muchos casos prcticos) en alrededor de 19,674 aos. No tiene sentido resolver de esa forma un problema si al interesado no le alcanza su vida para ver la respuesta!. [Gutirrez, 1991]Descripcin del Problema CombinatorioEl enfoque clsico para estudiar un problema de optimizacin es proceder a identificar aquellas propiedades, cualitativas, cuantitativas, que conduzcan a uno o varios procedimientos eficientes para implementarlos en una computadora y obtener su solucin. Resulta importante aqu evaluar el tiempo que tardar un procedimiento para encontrar la solucin ya que no es lo mismo esperar unos cuantos segundos que tener que esperar horas, das o quiz ms tiempo para saber la solucin del problema. Otro aspecto importante es conocer el comportamiento del algoritmo cuando el tamao del problema crece, pues se puede tener un procedimiento que resulte adecuado para resolver problemas pequeos o medianos, pero resultar impracticables cuando el tamao del problema es grande. Una instancia de un problema de optimizacin combinatorio puede formalizarse como una pareja , donde denota el conjunto finito de todas las soluciones posibles y la funcin de costo, mapeo definido por

En el caso de minimizacin, el problema es encontrar que satisfaga

en el caso de maximizacin, la que satisfaga

A la solucin se le llama una solucin globalmente ptima y denota el costo ptimo, mientras que denota el conjunto de soluciones ptimas. [Gutirrez, 1991]Un problema de Optimizacin Combinatoria es un conjunto de instancias de un problema de optimizacin combinatoria.

En las definiciones anteriores se ha distinguido entre un problema y una instancia del problema. De manera informal, una instancia esta dada, por los datos de entrada y la informacin suficiente para obtener una solucin mientras que un problema es una coleccin de instancias del mismo tipo. Definicin del Problema del Agente Viajero como un problema combinatorio El problema del agente viajero se describe as: Un agente viajero tiene que recorrer un nmero n de ciudades, su objetivo es minimizar distancias, tiempo, dinero, etc; sujeto a que el agente viajero debe visitar todas y cada una de las ciudades una sola vez y con la condicin de regresar a la ciudad de la cual parti.

Considere ciudades y una matriz de orden , cuyos elementos denotan la distancia entre cada par p, q de ciudades.

Se define un recorrido como una trayectoria cerrada que visita cada ciudad exactamente una vez. El problema es encontrar el recorrido de longitud mnima.

En este problema, una solucin est dada por una permutacin cclica , donde denota la ciudad a visitar despus de la ciudad , con y . Aqu se entiende por la aplicacin de l veces la permutacin . Cada solucin corresponde a un recorrido. El espacio de soluciones est dado por

y la funcin de costo se define por

es decir, da la longitud del recorrido correspondiente a . Adems, se tiene que .

Por lo cual se define as:

Instancia: Sea un conjunto de m ciudades, la distancia para cada par de ciudades y un nmero entero positivo .Pregunta: Hay una ruta de que tenga una longitud o menor, por ejemplo una permutacin > de tal que :

Podemos observar que el planteamiento y solucin del problema del agente viajero se restringe a un problema de optimizacin combinatoria y a un problema de grafos cuya solucin es una permutacin y un circuito hamiltoniano, respectivamente.Existen otras reas de estudio que plantean al problema del agente viajero como un problema de decisin y como un problema de optimizacin y en conjunto se le llama un problema NP-Completo. En la seccin de Complejidad computacional se aborda en ms detalle estos enfoques.

Pero que hay de la historia de este problema, dnde se origina?, Quines son quienes ms lo han estudiado?, pues bien este tipo de preguntas se contestan en la siguiente seccin.

Historia del problema del Agente ViajeroSi nos remitimos al PAV como un grafo (teora de grficas), ste tiene su inicio alrededor del ao 1850, ya que este tipo de problemas (grafos) fueron tratados por dos matemticos britnicos William Rowan Hamilton, y Thomas Penyngton Kirkman . Y es justamente a Hamilton a quien se le debe el trmino de circuitos hamiltonianos que justamente es la solucin del problema del agente viajero desde un punto de vista grfico, originado en un juego inventado por este matemtico en 1859.

Trataba sobre un viaje alrededor del mundo, el cual se representaba en forma simplificada por un dodecaedro (poliedro de 12 caras pentagonales con 20 vrtices), y se requiere que se pase una sola vez por cada vrtice o ciudad, usando solamente las caras del dodecaedro y se regrese al punto inicial. [Flores, 2000]

Figura 1.10 Juego propuesto por Sir William Rowan HamiltonSin embargo en 1832 se imprimi un libro en Alemania titulado Der handlungsreisende,wie er sein soll und was er zu thun hat,um Aufrtrge zu erhalten und eines glcklichen Erfols in seinen Geschften gewiss zu sein. Von einem alten Commisvoyageur (The traveling salesman problem, how he should do to get Commissions and to be successful in his business. By a veteran traveling salesman . Que debe hacer el agente de viajes para obtener comisiones y ser exitoso en su negocio, escrito por un agente de ventas veterano. Aunque el libro trata de otros problemas, en el ltimo captulo hace nfasis en la esencia del problema de agente viajero, encontrar un camino corto dentro de varias opciones y no visitar las ciudades ms de una vez. [Lawler, 1985]Y no fue hasta 1920 cuando el matemtico y economista Karl Menger lo dejara entrever y lo publicara entre sus colegas en Viena, en el cual propona el problema del mensajero. En 1930, el problema reapareci en los crculos matemticos de Princeton. Y la primera vez que se mencion el trmino de traveling salesman problem en los crculos matemticos fue en 1931-1932. En 1940, ya haba sido estudiado por los estadistas Mahalanobis (1940), Jessen (1942), Gosh (1948), Marks (1948) en conexin con una aplicacin en la agricultura y el matemtico Merill Flood lo populariz entre sus colegas en la corporacin RAND. Eventualmente el PAV iba ganando notoriedad como un problema prototipo de problemas duros en optimizacin combinatoria: examinar los posibles caminos uno por uno, era una cuestin que no estaba planteada para una instancia con gran nmero de ciudades para los aos 40s. Este problema se abri camino cuando George Dantzig, Ray Fulkerson, y Selmer Johnson (1954) publicaron una descripcin de un mtodo de solucin del PAV titulado Solutions of a large scale traveling salesman problem , Soluciones de gran escala para el problema del agente viajero ya que ilustraban el poder de ese mtodo para resolver una instancia de 49 ciudades, un impresionante nmero de ciudades para aquellos tiempos.Seleccionaron cada uno de los 48 estados de Estados Unidos (Alaska y Hawai formaron parte de Estados Unidos hasta el ao de 1959) y adicionando el estado de Washington, en este problema se definan los costos de viajar de una ciudad a otra y estaban en funcin de la distancia de camino entre las ciudades. Ellos resolvieron el problema con 42 ciudades quitando a Baltimore, Wilmington, Philadelphia, Newark, New York, Hartford, y Providence. Dando como resultado un viaje ptimo a travs de las 42 ciudades, usando la unin de la ciudad de Washington a Boston; ya que la ruta ms corta entre esas dos ciudades pasa a travs de las siete ciudades que se quitaron. Esta solucin de 42 ciudades nos da una solucin para el problema con 49 ciudades.En la siguiente figura 1.11 se tiene la solucin de manera grfica.

Figura 1.11 Solucin del PAV de 49 ciudades en Estados UnidosProcter and Gamble realiz un concurso en 1962. El concurso requera una solucin para el PAV con 33 ciudades.

Groetchel en 1977 quien encontr una ruta ptima o tour ptimo de 120 ciudades en Alemania. En la figura 1.4 se muestra la solucin de manera grfica.

En 1987 Padberg y Rinaldi, encontraron una ruta ptima de 532 ciudades en Estados Unidos.

Padberg y Rinaldi en 1987 encontraron una ruta ptima a travs de una distribucin de 2,392 ciudades que se obtuvo de la Incorporacin Tektronics.Groetschel y Holland en1987 encontraron una ruta ptima de 666 lugares interesantes en todo el mundo. En 1990, la instancia del PAV de mayor tamao que haba sido resuelto era una de 318 ciudades. Hoy en da existen mtodos basados en tcnicas de ramificacin y corte/acotamiento, las cuales explotan muy efectivamente la estructura matemtica del problema, que han sido muy exitosas. Applegate, Bixby, Chvtal, y Cook en el ao de 1994 encontraron una ruta ptima para el PAV con 7,397- ciudades que surgieron de una aplicacin de los laboratorios de AT&T.

Applegate, Bixby, Chvtal, y Cook (1998) encontaron un tour ptimo de 13,509 ciudades en E.U. En 1998, se report la instancia ms grande que se haba resuelto de 13,509 ciudades, resuelto por Applegate, Bixby, Chvtal, y Cook lo cual evidencia el tremendo progreso logrado durante la dcada de los noventa.

Figura 1.12 Solucin ptima con 13,509 ciudades de Estados Unidos

Ya para el ao 2001 se ha resuelto ya una instancia de 15,112 ciudades localizadas en Alemania. En la figura 1.5 se tiene la solucin grfica de este problema que se ha resuelto hasta el momento. La fecha en el que se resuelve este problema es el 21 de Abril de 2001. Y lo resuelven David Applegate, R. ,Bixby,Chavtal y Cook. El nombre con el que se conoce a nivel mundial este problema es d15112. Los algoritmos usados para resolver este problema fueron planos de corte y ramificacin y acotamiento. Se utilizaron 110 computadoras Instaladas en paralelo en las Universidades de Rice y Princeton. El tiempo de solucin computacionalmente hablando fue de 22.6 aos. La solucin fue llevada a cabo en una Compaq EV6 Alpha con un procesador de 500 MHz. El viaje ptimo es de: 66,000 kilmetros a travs de Alemania.

Figura 1.13 Solucin ptima, grfica del problema con 15,112 ciudades.

Actualmente se encuentran solucionando una instancia de 1, 904,711 ciudades ms populares del mundo. Y se tiene pensado resolverse en el ao 2025.

La librera TSPLIB (http:// www.math.princeton.edu/tsp/usa) de dominio pblico contiene un conjunto de ejemplos del TSP con la mejor solucin obtenida hasta el momento, y en algunos casos, con la solucin ptima.

En la tabla 1.1 se tiene un resumen de resolucin del Problema del Agente Viajero, a travs del tiempo, con respecto el tamao de la instancia (nmero de ciudades).

En la columna de la derecha se indica el nombre del Problema del Agente Viajero como se conoce a nivel mundial.Tabla 1.1 Resumen de resolucin del PAV segn tamao de instanciaAoGrupo de InvestigadoresTamao de la instanciaNombre del PAV (TSPLIB)

1954G. Dantzig, R. Fulkerson, y S. Johnson49 ciudadesdantzig42

1971M. Held y R.M. Karp64 ciudadesdantzig42 + 22 ciudades aleatorias

1975P.M. Camerini, L. Fratta, y F. Maffioli100 ciudadeshk48 + dos instancias pequeas

1977M. Grtschel120 ciudadesgr120

1980H. Crowder y M.W. Padberg318 ciudadeslin318

1987M. Padberg y G. Rinaldi532 ciudadesatt532

1987M. Grtschel y O. Holland666 ciudadesgr666

1987M. Padberg y G. Rinaldi2,392 ciudadespr2392

1994D. Applegate, R. Bixby, V. Chvtal, y W. Cook7,397 ciudadespla7397

1998D. Applegate, R. Bixby, V. Chvtal, and W. Cook13,509 ciudadesusa13509

2001D. Applegate, R. Bixby, V. Chvtal, y W. Cook15,112 ciudadesd15112

En la figura 1.14 se muestra de manera grfica la relacin entre el ao y el tamao de la instancia que se han ido resolviendo.

Figura 1.14 Relacin grfica entre el tamao de instancia resuelto con respecto al tiempo

Complejidad computacional

Prcticamente todas las reas de las ciencias computacionales tratan, en mayor o menor grado con complejidad computacional. El tema es muy comn entre expertos del rea, sobre todo entre aqullos relacionados con NP-completos y entre quienes buscan algoritmos eficientes para diversos problemas de aplicacin. La importancia de la complejidad computacional estriba en que se ha convertido en una forma de clasificar buenos y malos algoritmos y de clasificar problemas computacionales como fciles y difciles. El problema del agente viajero fue uno de los primeros donde se aplic la teora de la NP-Completez a principios de los 70s. A partir de entonces se ha usado como el ejemplo prototipo de los problemas combinatorios NP-difciles. Adems, el PAV ha dado pie al desarrollo de nuevos algoritmos. Por ejemplo, el mtodo de relajacin lagrangeana se desarroll a partir del trabajo de Held y Karp para resolver el problema del agente viajero.

Una vez que se sabe que el problema es NP-difcil, y por lo tanto es improbable que exista un algoritmo polinomial que encuentre la solucin ptima, se buscan algoritmos aproximados eficientes. Es decir, algoritmos que encuentran una solucin cercana a la ptima en un tiempo corto. Hasta la fecha, los mejores algoritmos de este tipo son aqullos que se basan en una tcnica conocida como optimizacin local, en la que una solucin se mejora continuamente al realizar cambios locales.

Se puede concluir que el PAV es un problema NP-Completo por lo que conlleva que es un problema difcil de resolver. En captulos posteriores se hablar con ms detalle los algoritmos de solucin que existen partiendo de las premisas anteriores.

Teora de Grficas

Teora de la Complejidad Computacional

NP-Completez

El PAV o TSP

Investigacin de Operaciones

Optimizacin Combinatoria

Grafo

21

1

51

31

41

3

43

743

8743

2743

Costo =$24

1

V4

V3

V1

V2

D

V4

V3

V1

V2

G

EMBED Equation.DSMT4 Gp

EMBED Equation.DSMT4 Gs

1

1

1

1

1

a

b

c

1

1

20

1

1

a

c

b

d

e

f

a

c

b

d

e

f

PAGE

_1142187459.unknown

_1142190707.unknown

_1142254254.unknown

_1143898100.unknown

_1144751016.unknown

_1144751169.unknown

_1148851676.unknown

_1148857445.unknown

_1148857486.unknown

_1144751188.unknown

_1144751219.unknown

_1144751254.unknown

_1145702506.unknown

_1144751246.unknown

_1144751206.unknown

_1144751176.unknown

_1144751098.unknown

_1144751132.unknown

_1144751160.unknown

_1144751120.unknown

_1144751064.unknown

_1144751085.unknown

_1144751037.unknown

_1143898996.unknown

_1143901606.unknown

_1144750968.unknown

_1144750999.unknown

_1144750955.unknown

_1143901536.unknown

_1143901547.unknown

_1143900778.unknown

_1143898381.unknown

_1143898543.unknown

_1143898957.unknown

_1143898457.unknown

_1143898279.unknown

_1143898302.unknown

_1143898232.unknown

_1143317262.unknown

_1143552118.unknown

_1143897875.unknown

_1143898009.unknown

_1143898090.unknown

_1143897962.unknown

_1143553636.unknown

_1143897566.unknown

_1143895601.unknown

_1143895617.unknown

_1143895484.unknown

_1143553067.unknown

_1143466722.unknown

_1143466990.unknown

_1143551648.unknown

_1143551777.unknown

_1143551919.unknown

_1143551662.unknown

_1143467184.unknown

_1143466796.unknown

_1143466465.unknown

_1143466608.unknown

_1143317336.unknown

_1142258132.unknown

_1143317147.unknown

_1143317211.unknown

_1143317246.unknown

_1143317175.unknown

_1143316876.unknown

_1143317062.unknown

_1142258188.unknown

_1142257845.unknown

_1142257971.unknown

_1142258040.unknown

_1142257880.unknown

_1142254958.unknown

_1142255135.unknown

_1142254603.unknown

_1142240021.unknown

_1142240739.unknown

_1142253939.unknown

_1142254063.unknown

_1142254205.unknown

_1142253977.unknown

_1142253714.unknown

_1142253776.unknown

_1142240217.unknown

_1142240569.unknown

_1142240687.unknown

_1142240510.unknown

_1142240192.unknown

_1142240140.unknown

_1142190996.unknown

_1142191230.unknown

_1142191471.unknown

_1142191163.unknown

_1142191136.unknown

_1142190850.unknown

_1142190934.unknown

_1142187548.unknown

_1142188191.unknown

_1142188470.unknown

_1142188525.unknown

_1142190622.unknown

_1142188383.unknown

_1142187976.unknown

_1142188143.unknown

_1142187870.unknown

_1142187892.unknown

_1142187488.unknown

_1142187512.unknown

_1121689584.unknown

_1142184918.unknown

_1142185113.unknown

_1142186036.unknown

_1142187373.unknown

_1142185662.unknown

_1142185054.unknown

_1142185092.unknown

_1142184978.unknown

_1121690228.unknown

_1142184627.unknown

_1142184839.unknown

_1142184669.unknown

_1142184729.unknown

_1139803662.unknown

_1142184553.unknown

_1142184579.unknown

_1139803690.unknown

_1142184469.unknown

_1139803674.unknown

_1125423317.unknown

_1139803561.unknown

_1139803645.unknown

_1125423768.unknown

_1125423231.unknown

_1121689900.unknown

_1121690159.unknown

_1121690188.unknown

_1121690073.unknown

_1121689797.unknown

_1121689835.unknown

_1121689755.unknown

_1121688552.unknown

_1121688999.unknown

_1121689495.unknown

_1121689552.unknown

_1121689358.unknown

_1121688933.unknown

_1121688949.unknown

_1121688651.unknown

_1121688101.unknown

_1121688268.unknown

_1121688490.unknown

_1121688213.unknown

_1121687865.unknown

_1121688003.unknown

_1121687694.unknown

_1121687783.unknown

_1121687621.unknown