• Nenhum resultado encontrado

Problemas de otimização surgem em quase todas as áreas, desde a área de desenvolvimento científico até áreas de aplicação industrial. Eles emergem quando a tarefa é encontrar a melhor dentre muitas soluções possíveis para um dado problema, desde que exista uma noção clara de como avaliar a qualidade da solução. Contrariamente a outros problemas de otimização, os problemas de caráter combinatório têm um número finito de soluções candidatas. Assim, uma forma óbvia de resolução seria a enumeração de todas as soluções candidatas, comparando-as. Infelizmente, para a maioria destes problemas, esta abordagem não é praticável, já que o número de soluções possíveis é simplesmente exponencial. Este é o caso do PSV.

Esta é a razão pela qual pesquisadores têm concentrado esforços na utilização de heurísticas para solucionar problemas de complexidade exponencial (HYLOCK e CURRIM, 2013), (KUMAR e HAIDER, 2011), (KHAN e AZIZ, 2010). Uma heurística consiste em uma técnica inspirada em processos intuitivos que procura uma boa solução a um custo computacional aceitável, sem, no entanto, estar capacitada a garantir a obtenção

da solução ótima, bem como garantir quão próximo está a solução obtida da solução ótima. O desafio é produzir, em tempo reduzido, soluções tão próximas quanto possível da solução ótima. Muitos esforços têm sido feitos nesta direção e heurísticas muito eficientes e flexíveis foram desenvolvidas para diversos problemas. As meta-heurísticas, que são heurísticas de propósito geral, podem ser facilmente adaptadas para resolução de diversos problemas. Dentre os procedimentos enquadrados como meta-heurísticas que surgiram ao longo das últimas décadas, destacam-se: Algoritmos Genéticos, GRASP, Colônia de Formigas, Redes Neurais, Recozimento Simulado (Simulated Annealing) e Religamento de Caminho (Path-Relinkg) (GENDREAU e POTVIN, 2010). Nas seções seguintes, heurísticas, que foram adotadas nos experimentos reportados neste documento são explicadas detalhadamente.

2.5.1. GRASP - Greedy Randomized Adaptive Search Procedure

As meta-heurísticas são uma das alternativas mais promissoras para a solução aproximada de problemas de elevado nível de complexidade computacional. Dentre as meta-heurísticas existentes, GRASP (Greedy Randomized Adaptive Search Procedure), proposto por (FEO e RESENDE, 1995), tem se destacado como uma das mais competitivas em termos da qualidade das soluções alcançadas (FESTA e C., 2009). A meta-heurística GRASP é um processo iterativo, no qual cada iteração consiste, resumidamente, em repetir dois passos até que certo critério de parada seja atingido, como ilustra a Figura 2.7. O primeiro passo, a fase construtiva, consiste em gerar uma solução inicial de boa qualidade por meio de uma heurística gulosa aleatorizada. O segundo passo, a fase de busca local, consiste em melhorar a solução inicial por meio de uma busca local e atualizar a melhor solução encontrada até então.

Muitas técnicas podem ser acopladas ao GRASP no intuito de aperfeiçoar a heurística GRASP. Nas próximas seções, duas dessas técnicas Path-Relinking (PR) e

Reactive GRASP são descritas.

GRASP (

)

Entrada: uma lista de vértices (

), Saída: melhor solução encontrada

1 melhorSolucao 

;

2 ENQUANTO critério de parada não for satisfeito FAÇA 3 solucao FaseConstrução(

'

4 solucao FaseBuscaLocal(

'

, solucao); 5 AtualizarSolucao(solucao, melhorSolucao); 6 RETORNE melhorSolucao;

Figura 2.7: Meta-heurística GRASP

2.5.1.1. Path-Relinking

O Path-Relinking (PR) (RESENDE e RIBEIRO, 2005) consiste em uma estratégia de busca de soluções que explora o caminho de conexão entre duas soluções: uma chamada de solução origem e outra chamada de solução alvo. Partindo de uma solução origem, faz-se nela movimentos de adição e/ou remoção de elementos, de modo que a cada movimento realizado, i.e a cada passo, a solução origem se torne cada vez mais semelhante à solução alvo. Todo o caminho de conexão é percorrido quando a solução origem se torna idêntica à solução alvo. O objetivo desta técnica consiste em encontrar, durante a realização dos passos, uma solução que seja melhor do que as soluções extremas deste caminho.

Uma forma de realizar o PR é por meio de passos do tipo forward, no qual a solução de melhor valor dentre as duas soluções é atribuída como solução alvo, ou seja, o passo consiste em fazer um movimento, tendo como solução origem, a solução de menor valor e tendo como solução alvo, a solução de maior valor. A outra forma é por meio de passo do tipo backward, no qual a solução de menor valor dentre as duas soluções é atribuída como solução alvo, ou seja, o passo consiste em realizar um movimento, tendo como solução origem, a solução de maior valor e tendo como solução alvo, a solução de menor valor. Outra forma de proceder é por meio de passos do tipo

mixed, no qual os dois passos (forward e backward) são utilizados intercaladamente.

Quando há uma grande concentração de soluções muito boas próximas à solução origem no caminho explorado pelo Path-Relinking, explorar apenas frações do caminho pode produzir soluções quase tão boas quantas aquelas encontradas por explorar o caminho de conexão inteiro. Desta forma, também existe a versão Truncated do PR, na qual não é percorrido todo o caminho de conexão entre as duas soluções iniciais. Em vez de explorar o caminho inteiro, o Truncated PR só explora uma parte do caminho existente entre duas soluções e, consequentemente, leva uma fração menor do tempo para ser executado. O Truncated PR pode ser aplicado nos tipos forward, backward ou

mixed. Isto produz mais três variantes do PR: forward truncated, backward truncated e mixed truncated.

Para ilustrar o funcionamento do Path-Relinking é exibido na Figura 2.8 duas soluções: uma solução origem e uma solução alvo. Seis passos foram necessários para realizar o religamento entre a solução origem e a solução alvo. Para a realização do primeiro passo (P1), um leque com seis opções de movimento foi gerado para se chegar à solução alvo. Então, as seis opções foram analisadas e o terceiro movimento foi selecionado como o melhor movimento. No segundo passo (P2), cinco opções de movimento foram geradas e foi selecionado o quarto movimento. Em seguida, no terceiro passo (P3), quatro opções de movimento foram geradas e o segundo movimento foi selecionado. No último passo (P6), a solução alvo foi atingida e cinco soluções foram produzidas durante o religamento: S1, S2, S3, S4, S5. A melhor dentre as cinco soluções é retornada pelo Path-Reliking.

Figura 2.8: Exemplo de funcionamento do Path-Relinking

2.5.1.2. Reactive Grasp

Os algoritmos baseados na meta-heurística GRASP recebem, além dos dados de entrada peculiares ao problema sendo otimizado, os valores dos parâmetros de configuração do algoritmo. Estes valores regulam a execução eficiente do algoritmo segundo os dados de entrada do problema. Desta forma, para cada conjunto de dado de entrada distinto, é necessária a realização da calibração destes parâmetros. Visando eliminar o custo associado à calibração dos parâmetros, são propostos em (FEO e RESENDE, 1995), (RIOS-MERCADO e FERNANDEZ, 2009), (BOUDIA, LOULY e PRINS, 2007), (KAMKE, ARROYO e DOS SANTOS, 2009), (DENG e BARD, 2011), versões reativas do GRAP (Reactive GRASP). Estas versões propõem mecanismos de auto-configuração dos parâmetros de entrada que regulam os procedimentos do algoritmo ao longo da execução. No contexto do PSV, a versão reativa melhora o dinamismo do método proposto neste documento, pois não é necessária, internamente,

uma etapa para a escolha dos melhores valores para os parâmetros de configuração do algoritmo de seleção. Além disso, a atribuição destes valores pelo usuário OLAP pode não ser satisfatório, pois necessitaria do seu entendimento sobre os parâmetros e requereria a realização de testes experimentais para escolha dos melhores valores. Por isso, este trabalho propõe um novo algoritmo de seleção de visões baseados na versão reativa da meta-heurística GRASP.

2.5.2. ACO - Ant Colony

A meta-heurística de otimização por Colônia de Formigas, ou simplesmente Colônia de Formigas (Ant Colony Optimization Metaheuristic - ACO), tem sido aplicada em problemas de otimização (DORIGO e BLUM, 2005) e no domínio do PSV (SONG e GAO, 2010). Esta meta-heurística emula o comportamento de um conjunto de formigas que cooperam entre si para solucionar um problema de otimização. A cooperação entre as formigas se dá por meio do feromônio depositado por cada formiga ao se deslocar no espaço de busca, permitindo que o rastreamento desta substância possa ser usado como informação por outras formigas. Além das atividades das formigas, a meta-heurística inclui o procedimento de evaporação da trilha de feromônio. A evaporação de feromônio é o processo pelo qual o feromônio depositado pelas formigas decresce ao longo do tempo. Isto é necessário para evitar uma convergência prematura do algoritmo em uma região subótima.

Na Figura 2.9, uma implementação da meta-heurística Colônia de Formigas aplicada ao PSV é exibida. Nesta implementação, o algoritmo recebe como parâmetros de entrada: a lista de visões candidatas à materialização (Ψ), o espaço disponível para materialização das visões (δ), a taxa de evaporação do feromônio (ρ), o número de formigas que saem de um caminho inicial (π) e a quantidade total de feromônio depositado ao longo do caminho (Q). Este último valor é igual ao número total de visões encontradas em (Ψ). representa um movimento (trecho) do local i ao local j. Um local i ou j representa uma solução no espaço de soluções do problema. é a quantidade de feromônio depositada por todas as formigas no trecho (i, j).

Inicialmente a quantidade total de feromônio em cada trecho (i,j) possui o mesmo valor, e é igual a 1. A melhor solução até então encontrada é vazia, ou seja, inicialmente tem-se que nenhuma visão foi adicionada. Na linha 5, para obtenção de uma rota (solução), uma visão v é escolhida como ponto inicial da rota, ou seja, v é a

primeira visão adicionada à solução. Em seguida, cada trecho (i,j) que compõe a rota é criado pela adição de uma visão de índice j à solução, tendo no trecho anterior adicionado a visão de índice i. Obtida a rota s pela formiga k, na linha 7, é feita a comparação entre a melhor solução corrente (melhor_solucao) e a solução s. Caso o benefício de s seja maior que o de melhor_solucao, então melhor_solucao passa a armazenar a solução presente em s. Além disso, na linha 8, é atribuído o feromônio depositado pela formiga k em todos os trechos percorridos por ela. Antes que o ciclo da linha 4 se repita, ou seja, antes que uma nova rota seja traçada pela próxima formiga, na linha 10, é executada a evaporação do feromônio. Por fim, quando o critério de parada é atingido, a melhor solução até então encontrada é retornada.

2 5 8 9 10

Figura 2.9: Algoritmo Colônia de Formigas

Documentos relacionados