UNIVERSIDAD DE BUENOS AIRES Facultad de Ciencias Exactas y Naturales Departamento de Matem(cid:19)atica Tesis de Licenciatura El problema del viajante: un algoritmo heur(cid:19)(cid:16)stico y una aplicaci(cid:19)on. Mar(cid:19)(cid:16)a Lorena Stockdale Director: Dra. Susana Puddu Co-Director: Dra. Gabriela Jer(cid:19)onimo Noviembre de 2011 2 Agradecimientos A mi familia por estar siempre a mi lado y apoyarme en todo lo que emprendo. A la Dra. Susana y al Dr. Fabio por las maravillosas clases a las cuales he tenido el privilegio de asistir y por ensen~arme en cada una de ellas la (cid:19)(cid:16)ntima relaci(cid:19)on entre los problemas reales y la matem(cid:19)atica. A la Dra. Gabriela por el apoyo invalorable que me brind(cid:19)o en el u(cid:19)ltimo tramo de este fascinante camino recorrido. Re(cid:13)ejando en cada una de sus palabras, su calidez y en cada una de sus sugerencias, su sabidur(cid:19)(cid:16)a. A los Dres. Juan Sabia y Mat(cid:19)(cid:16)as Gran~a por honrarme con su presencia en el jurado. Al Dr. Gustavo Massaccesi por su valiosa colaboraci(cid:19)on. Le agradezco el tiempo que me ha dedicado y los aportes sugeridos que enriquecieron este trabajo. A mis queridos compan~eros y amigos, por tantos momentos compartidos, no hubiera sido tan divertido todo este tiempo sin ustedes. (cid:19) Indice general 1. El problema del viajante de comercio 7 1.1. Or(cid:19)(cid:16)genes del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.2. Formulaci(cid:19)on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.3. Teor(cid:19)(cid:16)a de problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.3.1. Clase P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.3.2. Clase NP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 1.3.3. Clase NP - Completos . . . . . . . . . . . . . . . . . . . . . . . 19 1.3.4. Clase NP- Hard . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2. Clases de algoritmos, el m(cid:19)etodo branch and bound 27 2.1. Categor(cid:19)(cid:16)as de algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.1.1. Algoritmos de aproximacio(cid:19)n . . . . . . . . . . . . . . . . . . . . 28 2.1.2. Algoritmos heur(cid:19)(cid:16)sticos . . . . . . . . . . . . . . . . . . . . . . . 33 2.2. El m(cid:19)etodo de branch and bound . . . . . . . . . . . . . . . . . . . . . 34 2.2.1. Aplicaci(cid:19)on del m(cid:19)etodo branch and bound a programaci(cid:19)on lineal entera . . . . . . . . . . . . . . . . . . . . 35 2.2.2. Aplicaci(cid:19)on de branch and bound al problema del viajante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3. Algoritmos para el TSP 55 3.1. Algoritmo codicioso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 3.2. Algoritmo del m(cid:19)(cid:16)nimo spanning tree . . . . . . . . . . . . . . . . . . . . 58 3.3. Algoritmo de Christo(cid:12)des . . . . . . . . . . . . . . . . . . . . . . . . . 61 3.4. Algoritmo de Lin y Kernighan . . . . . . . . . . . . . . . . . . . . . . . 63 3.4.1. Estructura general del algoritmo . . . . . . . . . . . . . . . . . . 64 3.4.2. Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 3.4.3. Resultados computacionales . . . . . . . . . . . . . . . . . . . . 72 3.4.4. Re(cid:12)namientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 4. Secuencia de trabajos 93 4.1. Descripci(cid:19)on del problema . . . . . . . . . . . . . . . . . . . . . . . . . . 93 4.2. Intercambios. Costo de los intercambios . . . . . . . . . . . . . . . . . . 94 4.3. Tours y (cid:19)arboles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 4.4. El costo de un (cid:19)arbol. Propiedad especial del m(cid:19)(cid:16)nimo (cid:19)arbol . . . . . . . 99 3 (cid:19) 4 INDICE GENERAL 4.5. Costo de los (cid:19)arboles y tours . . . . . . . . . . . . . . . . . . . . . . . . 100 4.6. Una subestimaci(cid:19)on para el costo de una permutacio(cid:19)n . . . . . . . . . . 103 4.7. Una subestimaci(cid:19)on para el costo de un tour . . . . . . . . . . . . . . . 106 4.8. El algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 4.9. Ejemplo num(cid:19)erico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 RESUMEN Enestetrabajoabordamosunproblemacl(cid:19)asicodeoptimizaci(cid:19)oncombinatoriafamoso por ser sencillo de enunciar pero complejo de resolver: el problema del viajante, o m(cid:19)as conocido como TSP (traveling salesman problem). La importancia del TSP radica en que diversosproblemas del mundoreal pueden ser formulados como instancias de (cid:19)este. Tiene variadas aplicaciones pr(cid:19)acticas en problemas queaparentementenoest(cid:19)anrelacionados:seloaplicaen(cid:19)areasdelog(cid:19)(cid:16)sticadetransporte, en rob(cid:19)otica, en control y operaci(cid:19)on optimizada de sem(cid:19)aforos. Organizamos esta tesis en cuatro cap(cid:19)(cid:16)tulos. El primer cap(cid:19)(cid:16)tulo describe los or(cid:19)(cid:16)genes y la formulacio(cid:19)n matem(cid:19)atica del problema. A continuaci(cid:19)on, enunciamos las nociones te(cid:19)oricas necesarias para la demostraci(cid:19)on de que el TSP es un problema NP-Hard. En el segundo cap(cid:19)(cid:16)tulo comentamos distintas clases de algoritmos con que se cuenta para resolver el TSP. Eltercer cap(cid:19)(cid:16)tulose centraen el algoritmo heur(cid:19)(cid:16)sticode Lin y Kernighan, que es uno de los mejores que se conoce hasta el momento. Luego de discutir los aspectos te(cid:19)oricos del algoritmo, exhibimos el c(cid:19)odigo de una implementacio(cid:19)n en Visual Basic del mismo realizada como parte de esta tesis. Para concluir, comentamos algunos resultados com- putacionales que resultan de aplicar la implementaci(cid:19)on del algoritmo a tres problemas cl(cid:19)asicos. En el u(cid:19)ltimo cap(cid:19)(cid:16)tulo nos dedicamos al estudio de una aplicaci(cid:19)on en particular: la secuencia de trabajos. En este problema se quiere secuenciar una cierta cantidad de trabajos en una m(cid:19)aquina. Para realizar un trabajo tras otro, se debe realizar una transformaci(cid:19)on a la m(cid:19)aquina, lo que implica un costo. Analizamos un m(cid:19)etodo para encontrar el orden en el que deben realizarse los trabajos de forma que se minimice el costo total. Cap(cid:19)(cid:16)tulo 1 El problema del viajante de comercio 1.1. Or(cid:19)(cid:16)genes del problema Hay tres aspectos importantes en la historia de cualquier problema matem(cid:19)atico: c(cid:19)omo surge, c(cid:19)omo in(cid:13)uye su investigacio(cid:19)n en el desarrollo de las matem(cid:19)aticas y c(cid:19)omo es (cid:12)nalmente resuelto. Esta tesis est(cid:19)a dedicada al estudio del siguiente problema: Un viajante quiere visitar n ciudades una y s(cid:19)olo una vez cada una, em- pezando por una cualquiera de ellas y regresando al mismo lugar del que parti(cid:19)o. Supongamos que conoce la distancia entre cualquier par de ciudades. >De qu(cid:19)e forma debe hacer el recorrido si pretende minimizar la distancia total?. Aesteproblemaseloconoceconelnombredeproblema del viajante oTSP1 yresulta ser uno de los m(cid:19)as prominentes dentro del campo de la optimizaci(cid:19)on combinatoria pues todav(cid:19)(cid:16)a no ha sido resuelto e(cid:12)cientemente. Si queremos conocer su historia debemos remontarnos en principio a la de uno anterior que se origina en la teor(cid:19)(cid:16)a de grafos. EntendemosporgrafoalparG = (V,E)dondeV esunconjunto(cid:12)nitodeelementos que llamamos v(cid:19)ertices y E es un conjunto de pares de v(cid:19)ertices que denominamos ramas. Un ciclo es una sucesi(cid:19)on de v(cid:19)ertices u ,u ,...,u tales que u ,u ,...,u son dis- 1 2 p 1 2 p−1 tintos, u = u y (u ,u ) ∈ E. Si el ciclo contiene todos los v(cid:19)ertices se llama p 1 i i+1 hamiltoniano (en honor al matem(cid:19)atico irland(cid:19)es Sir William Rowan Hamilton). El TSP para un grafo que tiene asignado para cada una de sus ramas un cierto peso es el problema de encontrar un ciclo hamiltoniano de m(cid:19)(cid:16)nimo peso, entendi(cid:19)endose por peso del ciclo a la suma de los pesos de todas las ramas que pertenecen a (cid:19)el. 1TSP: traveling salesman problem 7 (cid:19) 8 CAPITULO 1. EL PROBLEMA DEL VIAJANTE DE COMERCIO Inversamente, el problema de decidir si un grafo tiene un ciclo hamiltoniano es un caso especialdelTSP(siseleasignaatodaslasramasdelgrafopeso0yalasramasfaltantes las agregamos asign(cid:19)andoles peso 1, se tendr(cid:19)a otro grafo que tiene ciclos hamiltonianos. Resolviendo el TSP, el nuevo grafo tiene un ciclo hamiltoniano de m(cid:19)(cid:16)nimo peso = 0 si y s(cid:19)olo si el grafo original contiene un ciclo hamiltoniano). Previo al an(cid:19)alisis de Hamilton, Euler y Vandermonde discutieron el problema del tour del caballo que se trata de encontrar un ciclo hamiltoniano para el grafo cuyos v(cid:19)ertices representan los 64 cuadrados del tablero de ajedrez, con dos v(cid:19)ertices adyacentes si y s(cid:19)olo si un caballo puede moverse en un paso de un cuadrado a otro. El reverendo T. P. Kirkman fue el primero en considerar ciclos hamiltonianos en un contexto general. Dio una condici(cid:19)on su(cid:12)ciente para que un grafo poli(cid:19)edrico admita un tal ciclo y adem(cid:19)as mostr(cid:19)o que un poliedro con un nu(cid:19)mero impar de v(cid:19)ertices en donde cada cara tiene un nu(cid:19)mero par de aristas, no tiene dichos ciclos. Al mismo tiempo en que Kirkman realizaba sus investigaciones, Hamilton inventaba un sistema de (cid:19)algebra no conmutativa. Hamilton llam(cid:19)o a esta (cid:19)algebra, c(cid:19)alculo icosa(cid:19)edri- co (v(cid:19)ertices adyacentes del dodecaedro se corresponden con caras adyacentes del icosae- dro). Us(cid:19)o la interpretacio(cid:19)n gr(cid:19)a(cid:12)ca como la base para un juego llamado el juego del icosaedro, (cid:19)este consist(cid:19)(cid:16)a de varios problemas, como por ejemplo terminar de encontrar un ciclo teniendo pre(cid:12)jadas las 5 primeras posiciones. Un precursor m(cid:19)as directo del TSP, en donde el largo de las ramas jugaba un rol predominante fue, una nueva de(cid:12)nici(cid:19)on de la medida de una curva que propuso Menger. (cid:19) El la de(cid:12)ni(cid:19)o como el supremo del conjunto formado por todos los nu(cid:19)meros que pueden ser obtenidos de tomar cada conjunto (cid:12)nito de puntos sobre la curva y determinar la medida de la menor poligonal que los une. A este problema se lo llam(cid:19)o el del mensajero. La resoluci(cid:19)on no requiere un ciclo, s(cid:19)olo un camino que contenga todos los v(cid:19)ertices. En 1832 fue impreso en Alemania un libro titulado: El problema del viajero, c(cid:19)omo debe hacer para obtener (cid:19)exito en sus negocios. En su u(cid:19)ltimo cap(cid:19)(cid:16)tulo se vislumbra la esencia del TSP cuando se comenta que con una elecci(cid:19)on apropiada del tour, se puede ganar mucho tiempo y que el aspecto m(cid:19)as importante es cubrir tantas ciudades como sean posibles sin visitar una de ellas dos veces. Merrill Flood fue el responsable de divulgar el nombre del TSP. Le habl(cid:19)o acerca de (cid:19)el a A. W. Tucker en 1937. Tucker le comento(cid:19) que recordaba haberlo escuchado de boca de Hassler Whitney de la Universidad de Princeton pero no pod(cid:19)(cid:16)a con(cid:12)rmar con certeza esta historia. De ser ver(cid:19)(cid:16)dica asegura que ocurri(cid:19)o en los an~os 1931-1932 pues fue en ese entonces cuando se hallaba terminando su tesis con Lefschetz. Whitney era un compan~ero que se encontraba en su etapa posdoctoral y estaba trabajando en teor(cid:19)(cid:16)a de grafos, especialmente en planaridad y en el problema de los cuatro colores y Flood era un estudiante reci(cid:19)en graduado. El problema del viajante ya ten(cid:19)(cid:16)a un nombre. JohnWilliamsincit(cid:19)oaFlooden1948apopularizarelTSPenlacorporaci(cid:19)onRAND, motivado por el prop(cid:19)osito de crear talentos intelectuales para modelos fuera de la teor(cid:19)(cid:16)a dejuegos.Nohaydudasdequelareputaci(cid:19)onylaautoridaddeRAND,quer(cid:19)apidamente se convirtio(cid:19) en el centro intelectual de muchas de las investigaciones sobre esta teor(cid:19)(cid:16)a, ampli(cid:12)c(cid:19)o la publicidad de Flood. Otra raz(cid:19)on de la popularidad del problema fue su (cid:19)(cid:16)ntima conexi(cid:19)on con el problema de la asignaci(cid:19)on y el del transporte. (cid:19) 1.1. ORIGENES DEL PROBLEMA 9 Laaparici(cid:19)ondelart(cid:19)(cid:16)culo\Solucionesdeunproblemadelviajantedegrantaman~o"de Dantzig,FulkersonyJohnsonenelJournaloftheOperationsResearchSocietyofAmeri- ca fue uno de los principales eventos en la historia de la optimizaci(cid:19)on. Para entender su importancia necesitamos conocer el estado en que se encontraba la optimizaci(cid:19)on combinatoria en el momento en que el paper apareci(cid:19)o y dos problemas en particular de la programaci(cid:19)on lineal: el problema del transporte y el de asignaci(cid:19)on. El problema de la asignaci(cid:19)on es elegir n elementos, uno por cada (cid:12)la y columna de una matriz C = (c ) de n×n tales que la suma de los elementos elegidos sea la menor ij posible.Hayn!manerasposiblesdehacerlaelecci(cid:19)on,porlotanto,unalgoritmo efectivo deber(cid:19)(cid:16)a hacer algo diferente que considerar todas las posibilidades. Una alternativa dentro de la programaci(cid:19)on lineal es considerar el poliedro P en el espacio n2 de(cid:12)nido como el conjunto de todas las matrices X = (x ) que satisfacen las condiciones x ≥ 0, ∑ ∑ ∑ ij ij x = 1 ∀i, x = 1 ∀j y minimizar c x . j ij i ij ij ij De acuerdo a Birkho(cid:11), los v(cid:19)ertices de P son precisamente todas las matrices X en donde cada (cid:12)la y columna contiene exactamente un 1 y todas las otras entradas son 0. Por lo tanto, los n! v(cid:19)ertices de P se corresponden con las n! elecciones posibles y la ∑ c x calcula el valor de cada elecci(cid:19)on. Como el (cid:19)optimo de esta funci(cid:19)on se alcanza ij ij en un v(cid:19)ertice, se pueden utilizar los algoritmos de la programaci(cid:19)on lineal. El problema del tranporte es m(cid:19)as general que el problema de la asignaci(cid:19)on. Es el ∑ problema de elegir una matriz X = (x ) de m×n que satisfaga x ≥ 0, x = a ∑ ∑ ij ij j ij i ∀i, x = b ∀j que minimiza c x donde a y b son enteros no negativos que i ij∑ j ∑ ij ij i j cumplen a = b . El problema del transporte modela la siguiente situaci(cid:19)on: se i i j j tienen m recursos i (i = 1,...,m), de cada uno de los cuales hay una cierta cantidad a , que se quieren enviar a n destinos j (j = 1,...,n) sabiendo que cada uno ha pedido i una cierta cantidad de mercader(cid:19)(cid:16)a b . Si cuesta exactamente c enviar una unidad de j ij mercader(cid:19)(cid:16)a i al destino j, >c(cid:19)omo podr(cid:19)(cid:16)a organizarse la entrega para cumplir con todos los requerimientos y minimizar el costo total?. Dantzig desarroll(cid:19)o el m(cid:19)etodo simplex para resolver problemas de programaci(cid:19)on li- neal. En 1953, exist(cid:19)(cid:16)an c(cid:19)odigos de implementacio(cid:19)n efectivos del m(cid:19)etodo simplex en general y adaptaciones especiales para los casos del problema del transporte y de la asignaci(cid:19)on. En 1954 Dantzig, Fulkerson y Johnson hicieron un m(cid:19)etodo que resolv(cid:19)(cid:16)a el problema del horario de los buques. La soluci(cid:19)on lleg(cid:19)o varios an~os despu(cid:19)es de que el modelo se volviera obsoleto, pero logr(cid:19)o sobrevivir porque el m(cid:19)etodo pod(cid:19)(cid:16)a ser usado para estudiar preguntas b(cid:19)asicas de la teor(cid:19)(cid:16)a combinatoria. Ford y Fulkerson escribieron su primer reporte sobre sistemas de (cid:13)ujo en 1956, iniciando de este modo un t(cid:19)opico mayor del cualderiv(cid:19)ounresultadodeJohnsonsobrelasecuenciadetrabajos.ElTSP,sinembargo, no estaba relacionado a simple vista con estos desarrollos pero hab(cid:19)(cid:16)a esperanza de que lo estuviera. Volviendo al problema de asignaci(cid:19)on descripto arriba, si c es la distancia de la ij ciudad i a la ciudad j, entonces el TSP guarda cierta similitud con el problema de la asignaci(cid:19)on. Podemos interpretar que x = 1 signi(cid:12)ca que el viajero se mueve de ij la ciudad i a la j en su tour. Una soluci(cid:19)on al problema de la asignaci(cid:19)on, bajo esta interpretaci(cid:19)on, puede ser un conjunto de subtours disconexos en donde cada ciudad es (cid:19) 10 CAPITULO 1. EL PROBLEMA DEL VIAJANTE DE COMERCIO visitada exactamente una vez, con lo cual no resolver(cid:19)(cid:16)a el TSP. Deber(cid:19)(cid:16)amos imponer la condici(cid:19)on adicional de no permitir subtours, que se puede expresar matem(cid:19)aticamente mediante 2n−1 inecuaciones. Desafortunadamente, el conjunto de v(cid:19)ertices del nuevo poliedro Q, a diferencia del conjunto de v(cid:19)ertices del poliedro original P, contiene matri- ces con entradas distintas de 0 y 1, por lo tanto, tambi(cid:19)en debemos imponer la condici(cid:19)on que las entradas en X deben ser 0 o 1. Estos cambios producen di(cid:12)cultades. La primera es que en vez de 2n ecuaciones de variables no negativas, tenemos un enorme nu(cid:19)mero de inecuaciones extras a considerar. Una di(cid:12)cultad au(cid:19)n mayor es el requerimiento que las variables sean 0 o 1, que es una condici(cid:19)on de la programaci(cid:19)on lineal entera, un tema no estudiado au(cid:19)n en 1950. Consideremos el conjunto de todas las matrices X que satisfacen los requerimien- tos del TSP (matrices que en sus entradas s(cid:19)olo tienen ceros y unos y que describen tours) y supongamos que conocemos, adem(cid:19)as de las inecuaciones que excluyen los sub- tours, todas las otras inecuaciones necesarias para crear un nuevo poliedro R cuyos v(cid:19)ertices son precisamente los tours, as(cid:19)(cid:16), en principio, se puede aplicar programaci(cid:19)on lineal. Dantzig, Fulkerson y Johnson especulaban que, empezando de un tour (cid:19)optimo o tal vez cercano al (cid:19)optimo, era posible probar optimalidad utilizando pocas ecuaciones adicionales (llamadas cortes). El m(cid:19)etodo parec(cid:19)(cid:16)a funcionar en pequen~os problemas, por eso, pasaron a trabajabar sobre uno de 49 ciudades. Dantzig, Fulkerson y Johnson su- girieron la posibilidad de que fuesen necesarios un gran nu(cid:19)mero de cortes. Dantzig, optimista, le apost(cid:19)o a Fulkerson que el nu(cid:19)mero de cortes necesarios eran a lo sumo 25, en cambio Fulkerson m(cid:19)as pesimista opinaba que se necesitaban al menos 26. Las predicciones fueron bastante acertadas: la cantidad correcta result(cid:19)o ser 26 pero en el paper que se public(cid:19)o se dec(cid:19)(cid:16)a que s(cid:19)olo 25 eran necesarios. Dantzig, Fulkerson y Johnson no s(cid:19)olo resolvieron un TSP de taman~o considerable sino que tambi(cid:19)en demostraron que la complejidad de la estructura de un problema de optimizaci(cid:19)on combinatoria no era un obst(cid:19)aculo insuperable para resolverlo. Ellos uti- lizaronporprimeravezelconceptodebranchybound,queesunm(cid:19)etodocomputacional muy popular, en particular, cuando se requiere que s(cid:19)olo algunas de las variables sean enteras. A grandes rasgos se trata de tomar una variable x que debe ser entera pero cuyo valor no lo es y a trav(cid:19)es del branching se consideran dos casos: x es al menos el mayor valor entero m(cid:19)as cercano o x es a lo sumo el menor valor entero m(cid:19)as cercano. Esta construcci(cid:19)on genera un (cid:19)arbol de bu(cid:19)squeda con nodos correspondientes a progra- mas lineales con varias restricciones en donde no es necesario crecer pasado los nodos donde el bound sobre el valor de la soluci(cid:19)on indica que el (cid:19)arbol no necesita ser explo- rado despu(cid:19)es de esos nodos. Todas estas ideas fueron ingredientes indispensables en la soluci(cid:19)on de la mayor(cid:19)(cid:16)a de los problemas de optimizaci(cid:19)on combinatoria que surgen en la programaci(cid:19)on lineal entera. Es claro que la publicaci(cid:19)on del paper en cuesti(cid:19)on fue un verdadero logro, aun cuando los autores se rehusaron a a(cid:12)rmar el desarrollo de un algoritmo general. Es de remarcar, haciendo una lectura en retrospectiva, cu(cid:19)anto de la (cid:12)losof(cid:19)(cid:16)a de los u(cid:19)ltimos avances de la optimizaci(cid:19)on combinatoria fueron imaginados en el exitoso abordaje de una instancia del TSP. Otrom(cid:19)etodoquesehaaplicadoenlaresoluci(cid:19)ondelTSPfuelaprogramaci(cid:19)ondin(cid:19)ami-
Description: