3.3 FUNDAMENTAÇÃO TEÓRICA
3.3.3 O PROBLEMA DO CAIXEIRO VIAJANTE
Seja ܩ ൌ ሺܰǡ ܣሻ um grafo, sendo ܰ ൌ ሼͲǡ ǥ ǡ ݊ሽ seu conjunto de vértices, e ܣ ൌ ሼሺ݅ǡ ݆ሻȁ݅ǡ ݆ א ܰሽ seu conjunto de arestas, à cada aresta ሺ݅ǡ ݆ሻ א ܣ existe um custo associado, formando a matriz ܥ. O problema do caixeiro viajante (Traveling Salesman Problem TSP) se resume em determinar uma rota com menor distância dentre todos as possíveis, passando exatamente uma vez por cada vértice do conjunto ܣ.
A matriz de distâncias ܥ pode ser simétrica ou assimétrica (Assimetric Traveling Salesman Problem- ATSP); no primeiro caso têm-se que ܥ ൌ ܥ para todo ݅ǡ ݆ א ܸ e no segundo, para pelo menos algum ݅ǡ ݆ א ܸ ǡ ܥ ് ܥ.
Diversas variações foram propostas para o TSP, parte destas baseando-se em uma simples suspeita de que alguns problemas ou aplicações da vida real podem ser modeladas como o TSP. Uma lista com alguns casos, é apresentada a seguir:
xO Máximo TSP: O problema do TSP Máximo é equivalente ao do TSP com uma função objetivo a ser maximizada ao invés de minimizada, ou seja, encontrar a
ordenação do conjunto de vértices ܸ ൌ ሼͲǡ ǥ ǡ ݊ሽ de tal forma que a soma dos arcos gerados ܣ ൌ ሼሺǡ ݍሻȁǡ ݍ א ܸሽ seja a maior possível.
xThe Bottleneck TSP (BTSP): O BTSP consiste em encontrar um ciclo Hamiltoniano tal que, de todos os arcos contidos na rota, o maior seja minimizado. O problema foi introduzido por (GILMORE, P; GOMORY, E, 1964) e teve sua estrutura generalizada por (AUTHORITY, 1978), que também explicitou uma aplicação nos ambientes de machine scheduling.
xTSP com múltiplas visitas: Neste caso, deve-se encontrar a rota mínima que comece em um determinado vértice ܰ ൌ ሼͲǡ ǥ ǡ ݊ሽ visitando todos pelo menos uma vez e retornando ao vértice inicial, de tal forma que o custo da rota seja mínimo.
xO problema do caminho mínimo: O problema define-se por, dados dois vértices ݑ݁ݒ א ܰ , encontrar o mínimo caminho Hamiltoniano em ܩ de ݑ a ݒ
xTSP Clusterizado: neste caso existe uma segregação do conjunto de vértices de ܩ em clusters ܿଵǡ ܿଶǥ ܿ, e o problema é então encontrar a rota única de menor custo, sujeito a restrição de que cidades de um mesmo cluster devem ser visitadas consecutivamente (GUTTMAN-BECK et al., 2000), (JONGENS; VOLGENANT, 1985).
xMúltiplos TSP: Supondo que existam ݉ caixeiros-viajantes no nó 1 de ܩ, cada caixeiro visita um subconjunto ܺ de nós de ܩ exatamente uma vez, retornando ao nó inicial. Deve-se encontrar uma partição ܺଵǡ ܺଶǡ ǥ ǡ ܺ݀݁ܰ െ ሼͳሽ e uma rota para cada partição, de forma que ȁܺȁ ͳ para todo ݅, ڂୀଵܺ ൌ ܰ െ ሼͳሽ, ܺ ת ܺ ൌ para ݅ ് ݆, e a distância total percorrida por todos os caixeiros-viajantes seja minimizada. (BEKTAS, 2006).
Métodos de resolução:
Ao se lidar com problemas com complexidades NP/Completos e NP-difíceis, usualmente lança-se mão de métodos que não exploram a totalidade do espaço de busca. Visa-se, assim, reduzir o tempo computacional dos cálculos, em detrimento da melhor resposta que poderia ser obtida. Estes são conhecidos por métodos aproximados. Apesar da dificuldade de resolução do TSP, alguns algoritmos conseguem explorar todo o espaço em um tempo que, em média é polinomial, como o algoritmo Simplex (CORMEN, 1996).
Métodos aproximados podem ainda ser classificados em duas famílias distintas, os algoritmos aproximativos e as heurísticas. Os algoritmos aproximativos fornecem bounds provados em algum aspecto do problema, seja em qualidade de solução ou tempo computacional, na medida em que as heurísticas encontram soluções consideradas boas em tempo computacional aceitável, porém não garantem nenhum tipo de bound (TALBI, 2009).
Os métodos heurísticos, por sua vez, também podem ser classificados em dois subtipos; heurísticas especificas e meta-heurísticas. As heurísticas específicas são engendradas para resolver uma classe específica de problemas e/ou instâncias. Já as meta-heurísticas podem ser utilizadas para se resolver problemas genéricos (TALBI, 2009). Arenales et. al (2007) ainda considera a subdivisão das heurísticas em duas;
construtivas e de busca local;
Uma árvore dos métodos é mostrada na FIGURA 17.
FIGURA 17 – TIPOLOGIA DE MÉTODOS DE RESOLUÇÃO
FONTE: O autor (2018).
Métodos exatos:
A seguir são apresentados os modelos matemáticos mais comumente usados em programação inteira para resolução do TSP, bem como os métodos de aproximação clássicos encontrados na literatura.
Parte dos métodos exatos propostos para o TSP baseiam-se em de formulações matemáticas desenvolvidas por Programação Linear Inteira, de forma que algumas formulações e algoritmos derivados das mesmas são apresentados.
A primeira formalização de um modelo matemático para o TSP pode ser atribuída a (DANTZIG et al., 1954) - DFJ, em que designa uma variável binária ܺpor arco, indicando se o mesmo está contido na rota final ou não:
Variáveis de decisão:
A restrição de eliminação de subrotas (3.9) proíbe a formação de rotas em subconjuntos com menos do que ݊ vértices. As restrições desta formulação, crescem exponencialmente a medida em que o número de pontos cresce linearmente.
Uma nova formulação é proposta por (MILLER et al., 1960), em que o número total de restrições é reduzido significativamente ܱሺ݊ଶሻ:
Variáveis de decisão:
A função objetivo minimiza o custo total da rota, as restrições (3.16) e (3.17) garantem a entrada e saída de fluxo nos vértices. A restrição (3.18) exclui subrotas, garantindo que a posição do vértice em uma rota sempre será menor do que a posição atribuída ao vértice ݍ se o arco ሺ݅ǡ ݆ሻ for utilizado.
Além de se avaliar o número de restrições gerado pelo modelo, avalia-se também os limitantes inferiores quando da resolução do modelo de programação linear relaxado, ou seja, trocando as restrições (3.11) e (3.19) por :
Ͳ ݔ ͳሺ݅ǡ ݆ሻ א ܣ (3.21)
Por este critério, embora o modelo de (MILLER et al., 1960) tenha um aumento de restrições de ordem linear, o mesmo tem um limitante inferior em sua relaxação linear muito fraco (LANGEVIN et al., 1990), de forma que a relaxação do modelo DFJ fornece limitantes próximos a 0.5% do ótimo (HELD; KARP, 1970).
Algoritmos Branch-and Bound (B&B) realizam uma enumeração sistemática das soluções candidatas, armazenadas em uma árvore enraizada. O algoritmo explora
os ramos da árvore que representam conjuntos de soluções, depois de realizar uma verificação dos Bounds já encontrados, se não existir possibilidade do ramo possuir melhores Bounds do que os já encontrados o mesmo é descartado (ARENALES et al., 2007).
Diversos algoritmos baseados em B&B foram propostos para se resolver o ATSP (CARPANETO; TOTH, 1980), (BALAS; CHRISTOFIDES, 1981), (MILLER;
PEKNY, 12729BC).
A relaxação pode ser obtida pela remoção, de qualquer modelo do TSP, das restrições que visam a eliminação de subrota. Em seguida o problema é resolvido iterativamente verificando todas as soluções e se as mesmas possuem subrotas, se sim, as restrições de eliminação de subrotas especificas para as que foram geradas são adicionadas ao modelo, e o mesmo é resolvido novamente, até que uma solução sem subrotas seja encontrada (restrições preguiçosas - lazy constraints). Uma resolução que também usa esta abordagem é a relaxação via problemas de designação e uma estrutura em árvore enumerativa de decisões (CHRISTOFIDES, 1975).
Estudos de base teórica sobre o TSP demonstram o resultado de que toda rota t do TSP é uma solução viável para o AP e o custo deste é justamente o custo total de t (BELLMORE; MALONE, 1971). Porém, nem toda solução do AP é uma rota do TSP, podendo ser consideradas coleções de subrotas do TSP. As restrições 3.2 do modelo de designação simplesmente garantem que a solução seja cíclica, dessa forma, se uma nova restrição for adicionada garantindo que o ciclo formado seja único (Hamiltoniano), tem-se um modelo matemático para o TSP.
O efeito equivalente às inserções de restrições para eliminação de subrotas pode ser obtido ao se definir ܥ ൌ λ para algum ሺ݅ǡ ݆ሻ que esteja contido em alguma subrota e resolver o AP novamente, de forma que o arco ሺ݅ǡ ݆ሻ não deve estar mais na solução final, o mesmo processo pode ser repetido até o momento em que não existam mais subrotas na solução.
Para organizar a estruturação da resolução em forma de árvore de decisão, o AP inicial (P0) é considerado como o nó raiz da árvore. Por meio de inserções de ܥ ൌ λ , de acordo com algum critério, novos subproblemas (P1, P2, etc.) são gerados a partir de P0. Este processo é repetido para todos os subproblemas PK (onde K = 1, .., k) até que o melhor caminho Hamiltoniano seja encontrado.
As regras de inserção do valor ܥ ൌ λ podem variar. A regra utilizada neste estudo segue a seguinte lógica, como mostrado na FIGURA 18:
1. Encontrar a menor subrota de um Problema Pk; Por exemplo (2,4,3) no nó 0.
2. Escolher um ponto da subrota; Por exemplo (2) no nó 0.
3. Formar todas combinações de arcos dos pontos escolhidos com todos os outros da subrota; exemplo {(2,3) (2,4)}, {(3,2)(3,4)} e {(4,2)(4,3)}, para o nó 0 da FIGURA 18.
4. Para todos os arcos ሺ݅ǡ ݆ሻ, encontrados no passo 3, criar um novo subproblema, alterando a matriz do problema de origem do recém-criado, com ܥ ൌ λ.
Nota-se que ao executar o passo 2, a escolha do ponto que será combinado com todos os outros gera o subproblema “filho”, dessa forma, existem tantas possibilidades de ramificação quantos forem os nós daquela subrota.
A FIGURA 18 exemplifica uma estrutura de solução. Em cada nó estão as informações das subrotas geradas e o valor da função objetivo. Os nós acinzentados apresentam caminhos hamiltonianos, ou seja, são Bounds viáveis para o TSP. Como a matriz de custos utilizada para a resolução do AP em qualquer nó filho (ex P2), é herdada do nó pai (ex P0) com as inserções de ܥ ൌ λ para evitar alguma subrota, necessariamente ሺʹሻ ሺͲሻ. Assim, obtém-se um critério de parada de ramificação da árvore. Uma vez que um Bound do TSP é encontrado e armazenado, qualquer outro nó com ܼ ܤݑ݊݀ deve ser eliminado e não mais ramificado, finalizando assim a exploração daquele ramo.
FIGURA 18 – ABORDAGEM DO TSP VIA CONCEITO DE ÁRVORE
FONTE: O autor (2018).
Métodos aproximativos:
O algoritmo aproximativo de Christofides possui uma taxa de 1.5 para o STSP, ou ainda, seja ܼ a solução ótima do problema, o algoritmo tem a garantia de nunca produzir uma solução que seja maior do que 1.5 vezes ܼ. (CHRISTOFIDES, 1976). A metodologia é apresentada na FIGURA 19:
FIGURA 19 – MÉTODOLOGIA HEURÍSTICA CHRISTOFIDES 3/2
Christofides_Heuristica_3/2 1 Encontrar a árvore geradora mínima do Grafo 2 Marcar os nós impares* da árvore
3 Encontrar o matching mínimo para os nós impares 4 Adicionar arcos aos nós com matchings mínimos 5 Encontrar o caminho Euleriano
6 Remover arcos extras
FONTE: O autor (2018).
Por um longo tempo o algoritmo de Christofides manteve a melhor razão aproximativa, até que (SUDAN; SZEGEDYL, 1992) desenvolveu uma metodologia que, para qualquer ߝ Ͳ fixo, pode-se computar soluções ሺͳ ߝሻ െ ܽݎݔ݅݉ܽ݀ܽݏ em tempo polinomial. O algoritmo possui algumas idéias elementares, como o algoritmo de dissecação de Karp (KARP, 1977), e o algoritmo de tempo exato de Smith (SMITH, 1988).
Ao conjunto de heurísticas formuladas com objetivo de prover uma solução para o problema de modo construtivo, é dado o nome de “Heurísticas construtivas”. As Heurísticas construtivas são inicializadas com uma solução nula e a cada iteração adicionam uma variável de decisão ao problema, de acordo com algum critério.
As heurísticas do “Vizinho mais próximo” e do “k-Vizinho mais próximo” são as construtivas mais populares em se tratando do TSP, pois são de simples implementação e alta velocidade (com soluções não necessariamente boas) provêm uma base para serem usadas junto a outras heurísticas e Meta-heurísticas (RESENKRANTZ et al., 1977).
Os dois procedimentos partem do princípio Guloso (Greedy) na construção da solução, ou seja, a cada inserção de um elemento na rota, avaliam qual seria a melhor escolha considerando unicamente o último ponto inserido. Construções deste tipo podem prover soluções pobres ao final, na medida em que não consideram a estrutura completa do problema. Os pseudocódigos são apresentados abaixo, FIGURA 20 e FIGURA 21.
FIGURA 20 – HEURÍSTICA VIZINHO MAIS PRÓXIMO 1 Inserir ponto inicial na rota
2 Enquanto a rota estiver incompleta fazer
3 Escolher o ponto mais próximo ao último ponto inserido na rota
4 Adicionar este ponto a rota
5 Fim enquanto
FONTE: O autor (2018).
FIGURA 21 – HEURÍSTICA K-VIZINHO MAIS PRÓXIMO 1 Para k=0 até o número de pontos
2 Resolver Heuristica_vizinho_mais_proximo(k) 3 Calcular custo da rota
4 Se o custo for melhor que o custo atual
5 Melhor custo recebe custo atual
6 Fim se
7 Fim para
FONTE: O autor (2018).
As heurísticas de melhoria são iniciadas com alguma solução e tentam melhorá-la por meio de mudanças iterativas, usualmente por meio de manipulações simples na estrutura da solução. Em se tratando de problemas em grafos, estas estruturas podem ser nós, arcos, subcaminhos, ou qualquer outra relacionada à grafos.
A método 2-opt proposto por Lin (LIN, 1965) é uma heurística de melhoria que, a partir de uma solução, realiza trocas iterativas entre os arcos verificando se existe melhoria no custo total da rota. Os arcos não adjacentes ሺݒǡ ݒାሻ e ൫ݒǡ ݒା൯ são substituídos por outros ൫ݒǡ ݒ൯ e ሺݒାǡ ݒାሻ, sendo estes os únicos que podem ser substituídos para manter a rota viável. Para que a ordem dos arcos (predecessores-sucessores) seja mantida, um dos dois subcaminhos formado após a remoção dos dois primeiros arcos deve invertida. A alteração no custo da solução produzida pela troca pode ser expressa por οൌ ܿ൫ݒǡ ݒ൯ ܿ൫ݒାǡ ݒା൯ െ ܿሺݒǡ ݒାሻ െ ൫ݒǡ ݒା൯. Uma solução
2-opt ótima é alcançada realizando trocas 2-opt até que não exista troca possível em que ο൏ Ͳ.
O procedimento 2-opt pode ser generalizado para que ݇ arcos sejam trocados, existem ൫൯ maneiras de se eliminar k arcos e substituir por k novos, e ሺ݇ െ ͳሻǨ ʹିଵ maneiras de reconectar os subcaminhos formados. Uma complexidade em tempo computacional de ܱሺ݊ሻ, dessa forma, a utilização de melhorias ݇ െ ݐ com k>3 devem ter alguma inteligência para restrição do espaço de busca, caso contrário pode se tornar um método não prático computacionalmente.
O método proposto por (LIN, 1965) teve uma adaptação de (EILON;
CHRISTOFIDES, 1972) que utilizaram݇ ൌ Ͷe ݇ ൌ ͷ. Com base nesta adaptação, (LIN; KERNIGHAN, B, 1973) propuseram uma nova abordagem, em que a decisão dos valores de ݇ é alterada dinamicamente pelo algoritmo.
O algoritmo é definido por trocas (ou movimentos) que podem transformar uma rota em outra. Dada uma rota inicial, o algoritmo repetidamente realiza trocas de tal forma que o custo total da rota atual seja reduzido, até que uma rota encontrada não possua mais trocas que reduzam o seu custo. Este processo pode ser repetido diversas vezes com soluções iniciais diferentes.
Seja ܶ a rota atual. A cada iteração o algoritmo tenta encontrar dois conjuntos de arcos, ܺ ൌ ሼݔǡ ǥ ǡ ݔሽ e ܻ ൌ ሼݕǡ ǥ ǡ ݕሽ, de tal forma que, se os arcos ܺ forem removidos e substituídos pelos arcos ܻ , o resultado é uma rota de menor distância total. Essa troca é chamada de movimento ݎ െ ݐ. A FIGURA 22 ilustra um movimento 3-opt.
FIGURA 22 – MOVIMENTO 3-OPT
FONTE: Adaptado de (LIN; KERNIGHAN, B, 1973).
Os conjuntos ܺ e ܻ são construídos elemento a elemento, inicialmente ambos são conjuntos vazios. Na iteração ݅ um par de arcos, ݔ e ݕ são adicionados a ܺ e ܻ respectivamente. Para que a factibilidade seja mantida, ݔ e ݕ devem compartilhar um ponto, e também devem ݕ e ݔାଵ. Seja ݐଵ um dos dois pontos de ݔଵ, têm-se genericamente: ݔ ൌ ሺݐଶିଵǡ ݐଶ) , ݕ ൌ ሺݐଶǡ ݐଶାଵ) e ݔାଵൌ ሺݐଶାଵǡ ݐଶାଶ) como na FIGURA 23. Para cada escolha dos conjuntos, é necessário que o ganho ܩ Ͳ, sendo que
݃ ൌ ܿሺݔሻ െ ܿሺݕሻ é o ganho pela troca de ݔ por ݕ, então ܩé a soma ݃ ݃ଶ ڮ
݃.
FIGURA 23 – ESCOLHA DOS CONJUNTOS X E Y
FONTE: Adaptado de (LIN; KERNIGHAN, B, 1973).
A TABELA 1 apresenta uma metodologia para o método:
TABELA 1 – METODOLOGIA LIN-KERNIGHAN 1 Gerar solução inicial aleatória
2 Seja i=1. Escolher ݐଵ
8 Se existir uma alternativa não escolhida para ݕଵ, i=2 e vá para o passo 7 9 Se existir uma alternativa não escolhida para ݔଶ, i=2 e vá para o passo 6 10 Se existir uma alternativa não escolhida para ݕଵ, i=1 e vá para o passo 4 11 Se existir uma alternativa não escolhida para ݔଵ, i=1 e vá para o passo 3 12 Se existir uma alternativa não escolhida para ݐଵ, vá para o passo 2 13 Fim (ou volte ao passo 1 com uma nova solução inicial)
FONTE: Adaptado de (LIN; KERNIGHAN, B, 1973).
Esse procedimento produz soluções quase-ótimas, porém é imbuído de uma implementação com maior complexidade. Helsgaun (2006) propõem uma implementação melhorada do método em linguagem C (Helsgaun Lin Kernighan -HLK), quando utilizado para resolver instâncias simétricas do TSPlib, em alguns casos, como em ali535, d657, d493 e pr1002, de 100 testes realizados, os valores ótimos foram encontrados nas 100 vezes em menos de 3s. (HELSGAUN, 2006).
Todas as variações do método de (LIN, 1965) requerem uma matriz simétrica, pois a vizinhança se baseia na troca de arcos. Apesar disso, Helsgaun (2016) utilizou o método proposto por (JONKER; VOLGENANT, 1983) para transformar uma matriz assimétrica em simétrica, ao custo de quase duplicar o seu tamanho e aplicou o seu algoritmo em todas as instâncias do ATSP contidas no TSPLib, resultando que a solução ótima foi encontrada para todas as instâncias (HELSGAUN, 2000).
A Meta-heurística Simulated Annealing (SA) é baseada nos conceitos mecânicos de aquecimento e arrefecimento de sólidos. Para que um material atinja o seu estado de mais baixa energia, é necessário um aquecimento até que suas partículas estejam randomicamente distribuídas em estado líquido, para então, reduzir gradativamente a temperatura até que o sistema atinja um estado de mínima energia.
Em sua máxima temperatura ܶ todos os possíveis estados do material podem ser alcançados, na medida em que, quando da diminuição da mesma, as possibilidades vão se restringindo até a convergência para um estado estável (TALBI, 2009).
A primeira aparição do SA aplicado a problemas de otimização foi no problema de particionamento de grafos proposto em (KIRKPATRICK et al., 1983). A associação em problemas de otimização é a seguinte: a temperatura do material ܶ é equivalente a permissividade de novas soluções serem incorporadas ou não a solução atual, desta forma se ܶ é alto, existe uma vasta diversificação, muitas soluções serão aceitas (até mesmo soluções piores do que a atual), conforme ocorre a redução em ܶ, o número
de movimentos permitidos também é reduzido, até o momento em que nenhum movimento possa ser realizado, momento do encontro de um mínimo local.
Para um determinado valor de ܶ, o SA funciona como uma heurística de ݇ െ
ݐ, considerando que a solução atual se encontra no ponto ͳ, toda a vizinhança ݒଵ é vasculhada, e uma solução ଶ pode ser aceita, mesmo se seu valor for superior a ଵ, para evitar que a solução permaneça em um mínimo local. Diversos autores utilizaram o S.A no TSP, como (BONOMIT, 1984),(GOLDEN; SKISCIM, 1986) e (NAHAR et al., 1989)..
A Busca Tabu (GLOVER, 1989) funciona por um mecanismo de restrição de movimentos; inicialmente uma lista de movimentos é gerada, a cada iteração um movimento da lista é selecionado e durante ݊ iterações o movimento permanece em uma lista de memória de curto prazo, enquanto o movimento estiver contido nesta lista, nenhuma solução pode utilizá-lo. Além disto, existe uma lista de memória de longo prazo, sendo este o mecanismo de diversificação do algoritmo.
Os algoritmos genéticos (AG) propostos por Holland 1975 (HOLLAND, J, 1992) pretendem simular o processo de seleção natural descrito por Darwin. Nela a evolução de uma população de indivíduos só é possível se existir um certo grau de mutação para que, desta forma, exista diversidade na população e os indivíduos mais aptos passem suas características para populações seguintes.
Em se tratando de otimização, cada solução do problema é considerada como um indivíduo e um conjunto de indivíduos perfaz uma população. Os indivíduos podem ser codificados como vetores (representando a ordem dos pontos, no caso do TSP). O algoritmo passa a atualizar a população inicial por meio de cruzamentos e mutações.
Os cruzamentos são combinações de materiais de indivíduos pais para geração de filhos (os filhos recebem parte da rota dos dois pais) e a mutação é responsável por alterações pontuais em soluções, como por exemplo uma troca (swap) entre dois elementos da solução. Após os cruzamentos e mutações, os indivíduos que continuarão e os que serão descartados da população são selecionados por algum critério, dando início assim, a uma nova rodada de seleção. O AG híbrido de (NGUYEN;
YOSHIHARA, 2007) encontrou soluções ótimas em casos em que nem mesmo o HLK conseguiu.