• Nenhum resultado encontrado

Segundo Gendreau et al. (1994), a Busca Tabu foi proposta por Glover em 1977, e dois dos primeiros trabalhos associadas ao PRV são de autoria de Willard

(1989) e de Pureza (1990). Depois disso, uma série de outros autores publicaram os esforços de suas pesquisas, conseguindo resultados expressivos diante de outros métodos para o PRV.

Inicialmente, vamos imaginar um cenário onde aplicamos uma heurística rápida qualquer, visando encontrar uma solução de partida para uma instância do PRV, por exemplo. Em seguida, podemos aplicar alguns procedimentos de melhoria, como apresentados anteriormente, em busca de um resultado de maior qualidade. Tais procedimentos conseguem melhorar a solução até encontrar um mínimo local. Se quisermos continuar com o processo de busca, a primeira coisa a fazer é realizar um movimento de piora, digamos o que causa menor aumento no custo, de maneira que comecemos a escapar desse mínimo local. A partir dessa situação, podemos pesquisar dentre os movimentos disponíveis, um que realiza uma melhora na solução.

Existe a possibilidade de que tal movimento faça com que a solução retorne ao mínimo local anteriormente alcançado. Caso isso ocorra, o passo seguinte indicaria novamente o movimento que causa o menor aumento no custo, e na seqüência poderíamos novamente retornar ao mínimo local. Essa situação ilustra o fenômeno da ciclagem, capaz de comprometer o processo em busca de melhores soluções. Precisamos, portanto, de um elemento restritivo na busca, capaz de impedir a reversão dos movimentos, fazendo com que o processo siga procurando novas soluções por regiões ainda não pesquisadas.

Poderíamos armazenar todos os movimentos anteriormente efetivados para realizar comparações, mas isso implicaria em maior utilização de memória e esforço de processamento. Além do mais, após sucessivas alterações, a possibilidade de retorno a uma determinada solução diminui. Isso sugere que a restrição feita a certos movimentos pode ser relaxada ao longo do processo. Caso não exista mais o risco de ciclagem, tal relaxação é até desejável, pois os movimentos liberados oferecem maior flexibilidade ao método.

Os aspectos anteriormente referidos constituem os dois elementos básicos da Busca Tabu: a restrição da busca, devido a proibição de movimentos contidos na lista tabu (movimentos proibidos); e a liberação dos movimentos, através de uma função de curto prazo ou após certo número de iterações, ou ainda, pelo próprio tamanho máximo da lista , que provoca um esquecimento conveniente (Pureza, 1990).

Na construção da lista tabu, para aliviar requerimentos de memória e tempo requeridos, é comum armazenar um atributo da solução tabu ao invés de toda a solução propriamente dita. Há trabalhos na literatura que escolhem um atributo diferente da solução para armazenar. Isto muda a estrutura de dados da Lista Tabu. Por exemplo: em Campos & Mota (2000) o atributo escolhido é uma tripla (ui, uj, r1) no caso de um

movimento intra-rota, e uma quádrupla (ui, uj, r1, r2) no caso de um movimento inter-

rotas. Na tripla, temos a informação de que os vértices ui e uj foram trocados, ambos

pertencendo à rota r1. Na quádrupla, temos a informação de queo vértice ui da rota r1 foi

trocado com o vértice uj da rota r2. Em Pureza (1990), são armazenadas as arestas

envolvidas no movimento. Cria-se duas listas, uma com as arestas adicionadas e outra com as arestas removidas. Em Taillard et al. (1997), a lista possui apenas o valor da função objetivo após a execução do movimento.

De qualquer forma, é consenso que durante o processo de busca, os índices dos atributos envolvidos em cada movimento efetivado são incluídos no início das listas correspondentes, deslocando os demais índices para o final da lista.

A decisão sobre o tamanho da Lista Tabu faz-se importante. Listas pequenas podem não evitar a ciclagem, enquanto listas grandes podem impedir a exploração de novas e interessantes soluções.

Segundo Laporte et al. (2000), o mecanismo básico da Busca Tabu pode ser melhorado por diversas características como diversificação e estratégias de intensificação, como descrito por Hertz et al. (1997), e por Glover & Laguna (1993, 1997), por exemplo.

Intensificação Regional: é uma estratégia promovida por funções de memória de médio prazo que comparam e armazenam características comuns de um certo número de boas soluções, coletadas durante um período específico da busca. Tais características são tomadas como um atributo regional de boas soluções. De posse dessas informações, a estratégia procura outras soluções que apresentem tais características, impondo restrições ou penalizações aos movimentos disponíveis.

Diversificação Global: É uma estratégia promovida por funções de memória de longo prazo que estimulam a procura de soluções em regiões ainda não exploradas do espaço de busca. Um exemplo simples seria contar o número de vezes que cada aresta aparece nas rotas geradas. Uma penalização proporcional pode ser aplicada a esse

número, fazendo com que as arestas que mais participaram dos movimentos de intercâmbio, não sejam tão utilizadas como foram anteriormente. Com isso, novas regiões passam a ser exploradas.

Outros conceitos básicos são descritos em Campos & Mota (2000). Estrutura de vizinhança: é definida por todas as soluções que podem ser obtidas a partir da solução corrente pela execução de um movimento. Ou seja, é possível ir da solução A para a solução o em 1 movimento. Movimento: consiste de uma troca entre 2 vértices ou da remoção/inserção de 1 vértice em 1 rota. Movimento admissível: se as 2 rotas envolvidas no movimento preservam sua viabilidade e o movimento não é tabu, ou se o movimento implicou numa solução melhor que a encontrada até o momento (critério de aspiração). Movimento tabu: Se o cliente p na rota i é movido para a rota j, então mover p para a rota i é declarado tabu.

A seguir, é descrito alguns estudos que obtiveram sucesso na aplicação dos conceitos da Busca Tabu.

O algoritmo Taburoute de Gendreau et al. (1994) apresenta algumas características inovadoras. O processo de busca pode examinar soluções inviáveis com relação às restrições de capacidade e distância máxima, por exemplo. A função objetivo possui 2 termos de penalidade, neste caso, uma para cada uma das restrições citadas anteriormente. Cada termo de penalidade é ponderado por um coeficiente que é ajustado dinamicamente. Se todas as 10 soluções anteriores forem viáveis, o peso da penalidade é dividido por 2, se todas as 10 soluções anteriores foram inviáveis, o peso é multiplicado por 2. Outra característica é que o Taburoute não possui de fato uma lista tabu, mas um atributo tabu. Sempre que um vértice é movido da rota r para outra rota na iteração t, sua reinserção na rota r é proibida até a iteração t+θ, onde θ é um inteiro aleatoriamente escolhido no intervalo [5,10]. Também utiliza-se uma estratégia de diversificação que visa penalizar vértices movidos freqüentemente com o objetivo de aumentar a probabilidade de se testar também vértices com baixa freqüência de movimentos. Neste caso a função objetivo é artificialmente aumentada, adicionando-se um termo proporcional à freqüência de movimentação do vértice corrente. Uma última característica relevante é a utilização de “false starts”. Inicialmente, várias soluções são geradas e uma pesquisa (busca de melhoria) limitada (rápida) é feita em cada uma delas. A melhor solução é então selecionada como ponto de partida do algoritmo.

O algoritmo Granular Tabu Search (GTS) tem um conceito interessante. Foi introduzido por Toth & Vigo (1998b) e obteve excelentes resultados no PRV. A principal idéia que permeia o GTS vem da observação de que arcos maiores (compridos) do grafo têm pequena probabilidade de fazer parte da solução ótima. Então, eliminando- se todos os arcos cujo tamanho excede um limite de granularidade (granularity threshold), muitas soluções não promissoras nunca serão consideradas no processo de busca. Os autores do artigo sugerem usar para o limite de granularidade um valor ν=β*µ, onde β é um coeficiente escolhido no intervalo [1,2], e µ é a média do comprimento dos arcos calculado a partir de uma solução gerada por uma heurística rápida. Os resultados do artigo mostram excelentes soluções em um baixo tempo computacional.

Documentos relacionados