Acessibilidade / Reportar erro

Proposta e avaliação de heurísticas grasp para o problema da diversidade máxima

Resumos

O Problema da Diversidade Máxima (PDM) consiste em, dado um conjunto N composto de n elementos, selecionar um subconjunto M <FONT FACE=Symbol>Ì</FONT> N de forma tal que os elementos de M possuam a maior diversidade possível entre eles. O PDM pertence à classe de problemas NP-Difícil limitando, com isso, o uso exclusivo de métodos exatos e tornando atrativo o desenvolvimento de novos métodos heurísticos na solução aproximada deste problema. Neste trabalho são propostos métodos heurísticos de construção e busca local que, combinados, são usados como base em diferentes versões do algoritmo GRASP (Greedy Randomized Adaptive Search Procedure). Incluímos como objetivos analisar o impacto destas heurísticas no desempenho da metaheurística GRASP. Resultados computacionais mostram que os algoritmos propostos sempre alcançam uma solução ótima quando esta é conhecida e, para instâncias maiores, apresentam um desempenho médio superior quando comparados com as melhores heurísticas GRASP da literatura.

GRASP; metaheurística; problema da diversidade máxima


The Maximum Diversity Problem (MDP) consists of, given a set N with n elements, selecting a subset M <FONT FACE=Symbol>Ì</FONT> N such that the elements of M have the most possible diversity among them. The MDP belongs to the class of NP-Hard problems limiting the exclusive use of exact methods and turning attractive the development of heuristics to solve the problem. In this work we propose constructive and local search heuristics which are used in different versions of GRASP (Greedy Randomized Adaptive Search Procedure). We also analyze the impact of this heuristics in the GRASP performance. Computational results show that the proposed algorithms always find an optimal solution when this one is known and, for larger instances, produce an average performance better than well known versions of GRASP from the literature.

GRASP; metaheuristic; maximum diversity problem


Proposta e avaliação de heurísticas grasp para o problema da diversidade máxima

Geiza Cristina da Silva; Luiz Satoru Ochi**Corresponding author / autor para quem as correspondências devem ser encaminhadas ; Simone Lima Martins

Instituto de Computação Universidade Federal Fluminense (UFF) Niterói – RJ gsilva@ic.uff.br satoru@ic.uff.br simone@ic.uff.br

RESUMO

O Problema da Diversidade Máxima (PDM) consiste em, dado um conjunto N composto de n elementos, selecionar um subconjunto M Ì N de forma tal que os elementos de M possuam a maior diversidade possível entre eles. O PDM pertence à classe de problemas NP-Difícil limitando, com isso, o uso exclusivo de métodos exatos e tornando atrativo o desenvolvimento de novos métodos heurísticos na solução aproximada deste problema. Neste trabalho são propostos métodos heurísticos de construção e busca local que, combinados, são usados como base em diferentes versões do algoritmo GRASP (Greedy Randomized Adaptive Search Procedure). Incluímos como objetivos analisar o impacto destas heurísticas no desempenho da metaheurística GRASP. Resultados computacionais mostram que os algoritmos propostos sempre alcançam uma solução ótima quando esta é conhecida e, para instâncias maiores, apresentam um desempenho médio superior quando comparados com as melhores heurísticas GRASP da literatura.

Palavras-chave: GRASP; metaheurística; problema da diversidade máxima.

ABSTRACT

The Maximum Diversity Problem (MDP) consists of, given a set N with n elements, selecting a subset M Ì N such that the elements of M have the most possible diversity among them. The MDP belongs to the class of NP-Hard problems limiting the exclusive use of exact methods and turning attractive the development of heuristics to solve the problem. In this work we propose constructive and local search heuristics which are used in different versions of GRASP (Greedy Randomized Adaptive Search Procedure). We also analyze the impact of this heuristics in the GRASP performance. Computational results show that the proposed algorithms always find an optimal solution when this one is known and, for larger instances, produce an average performance better than well known versions of GRASP from the literature.

Keywords: GRASP; metaheuristic; maximum diversity problem.

1. Introdução

O Problema da Diversidade Máxima (PDM) consiste em, dado um conjunto N com n elementos, selecionar um subconjunto M Ì N de forma tal que os elementos de M possuam a maior diversidade possível entre eles.

Este problema é classificado como NP-Difícil [KGD93] limitando o uso exclusivo de métodos exatos para a sua solução. Neste trabalho são propostos diferentes algoritmos heurísticos de construção e busca local, que aplicados aos conceitos da metaheurística GRASP (Greedy Randomized Adaptive Search Procedure), se mostram bastante promissores na resolução de instâncias do PDM. Nos testes computacionais realizados, é mostrado que, para instâncias de pequeno porte, os algoritmos propostos sempre alcançam uma solução ótima sempre que estes são conhecidos e, para instâncias maiores, apresentam um desempenho médio superior quando comparados com as melhores heurísticas da literatura.

O restante deste artigo está organizado conforme segue. Na seção 2 o Problema da Diversidade Máxima é apresentado. A seção 3 apresenta aplicações do problema e trabalhos relacionados. Na seção 4 são apresentadas características da metaheurística GRASP. Na seção 5, os algoritmos GRASP desenvolvidos em [Gh96] e [An03] são descritos e na seção 6 são discutidas as propostas de algoritmos deste trabalho. Na seção 7 os resultados e análises computacionais são apresentados. Finalmente, a seção 8 mostra as conclusões e sugestões de trabalhos futuros.

2. O Problema da Diversidade Máxima

O Problema da Diversidade Máxima (PDM) consiste em, a partir de um conjunto N contendo n elementos, selecionar um subconjunto M Ì N com m elementos que possuam a maior diversidade entre si. Uma medida de diversidade entre dois elementos pode ser representada pela distância entre eles. A distância, neste caso, é calculada com base no conjunto de atributos (componentes) dos elementos de N.

Desta forma, para definir o problema, considere o conjunto de índices N = {1, 2, ..., n}, onde n é o número de elementos em N, e:

  • t, o número de atributos que caracterizam os elementos de

    N;

  • aik, o valor do atributo

    k,

    k = {

    1,..., t} do elemento

    i,

    i Î

    N.

  • d(

    i,j), o índice de diversidade entre dois elementos distintos

    i e

    j com os respectivos valores de atributos (

    ai1, ai2, ..., ait) e (

    aj1, aj2, ..., ajt).

O índice de diversidade representa o grau de diferença existente entre os atributos dos elementos i e j, ou seja, a distância entre eles, que deve ser calculada usando-se uma dentre as métricas de distância existentes. De acordo com a área de aplicação, uma métrica pode refletir melhor o problema que outra [KGD93].

Seja D [n´n] uma matriz simétrica que armazena os índices de diversidade entre cada um dos elementos de N, preenchida da seguinte maneira: d(i, j) = d(j, i) e d(i, i) = 0, "(i, j) Î N . O valor da diversidade de M é determinado pela fórmula .

3. Trabalhos Relacionados

O Problema da Diversidade Máxima pode ser aplicado nas mais diversas áreas relacionadas ao campo da pesquisa operacional como na administração de recursos humanos [DGK94], [WL98], biologia [Ag97] e preservação ecológica [Ma99], [Un85].

Em [KGD93] foram apresentadas duas definições distintas para o PDM. Neste trabalho aborda-se a definição MAXSUM cujo objetivo é maximizar a soma das diversidades de um conjunto de elementos selecionados a partir de uma coleção maior. Os autores apresentaram ainda as duas formulações matemáticas para o PDM mostradas a seguir e provaram que o problema MAXSUM é NP-Difícil.

O PDM pode ser representado como um Problema de Programação Inteira como proposto em [KGD93]. Seja xi, "iÎ N , variável binária igual a 1, se e somente se o elemento i estiver na solução e 0, caso contrário, e d(i, j) representando a diversidade entre i e j, i, j Î N.

(P1) Maximizar

sujeito a:

A formulação P1, descrita pelas equações 1-3, é um modelo não linear devido a sua função objetivo quadrática (1) e tem como meta maximizar a soma das diversidades de m elementos de N. A igualdade (2) exige que exatamente m elementos façam parte de uma solução viável e (3) indica que as variáveis do problema devem ser binárias.

Uma versão linearizada de P1 é também proposta em [KGD93], descrevendo o PDM como um Problema de Programação Linear Inteira. Para isto, além das notações da formulação anterior considere yij, variáveis de decisão que se tornam iguais a 1 se i e j fizerem parte da solução e 0, caso contrário, "i,j Î N, i < j e Q = {(i, j): i, j Î N, i < j}.

(P2) Maximizar

sujeito a:

Na formulação (P2), a função objetivo (4) deve maximizar a soma das diversidades de m elementos de N. A igualdade (5) exige que exatamente m elementos pertençam a uma solução viável. Nas restrições (6) pode-se observar que a variável binária yij assume valor 1 sempre que xi e xj receberem tal valor e yij assume valor 0 se xi e xj forem ambas iguais a 0 ou se xi ou xj (somente uma delas) for igual a 1. As restrições (7) exigem que no caso em que xi pertencer à solução então deverá existir algum j tal que yij = 1. Da mesma forma que em (7), as restrições (8) exigem que se xj pertencer à solução então deverá existir algum i tal que yij = 1. As restrições (9) e (10) representam as variáveis binárias do problema, sendo yij = 1 se xi e xj estiverem na solução e 0 caso contrário e cada xi assumindo valor 1 se pertencer à solução e 0, caso contrário.

Outras formulações matemáticas para o PDM foram propostas em [GKD95] para aplicações específicas na área de meio ambiente.

Em [Gh96] foi proposto um algoritmo GRASP para o PDM e para comprovar a qualidade da heurística proposta foi implementado um algoritmo exato. Os resultados computacionais mostraram que o GRASP proposto alcança uma solução ótima ou uma solução muito próxima da ótima, mostrando desta forma sua eficiência ao menos para instâncias de pequeno porte (n < 40).

[Ag97] explorou o problema de selecionar subconjuntos de componentes químicos. No trabalho introduziu duas medidas para quantificar a diversidade e apresentou uma solução para o problema baseada em simulated annealing. O método foi testado usando bases de dados formadas a partir de métodos estatísticos. Os resultados foram visualizados a partir do algoritmo de mapeamento não-linear de Sammon [Sa69]. O artigo não fornece detalhes dos testes computacionais mas cita que o método encontra resultados satisfatórios.

Em [CK97] foram apresentadas duas heurísticas para o PDM, uma relaxação lagrangeana e uma heurística gulosa. Para avaliar os resultados obtidos foi implementado um algoritmo branch and bound e, desta forma, os autores concluíram que a heurística gulosa apresentou bons resultados para um conjunto de testes com número pequeno de elementos (n < 40).

Em 1998, [WL98] apresentou cinco heurísticas para o PDM. Este trabalho foi realizado para resolver uma aplicação prática que é criar grupos de projetos em uma classe de estudantes, de forma tal que esses estudantes sejam inseridos em ambientes heterogêneos, baseado em critérios como, por exemplo, nacionalidade, idade e formação. As heurísticas foram testadas somente para uma instância composta de dados reais e foi implementado também um algoritmo exato. Os testes apontaram a heurística LCW (Método Lotfi-Cerveny-Weitz) [WL98] como sendo a melhor para a solução do problema.

Em [GKD98] foram propostas quatro heurísticas sendo duas delas construtivas e as outras destrutivas onde, a partir de uma solução heurística com e elementos ocorre uma eliminação progressiva até que se tenha uma solução viável com m elementos. A eficiência dessas heurísticas foi testada através de comparação com os resultados de um método exato e para isso foram criadas diversas instâncias de populações com até 30 elementos. Foi citado pelos autores que as heurísticas propostas obtiveram em média resultados próximos aos do algoritmo exato (a no máximo 2% do ótimo), com um tempo de computação muito menor.

[HRT97] trata de um problema que considera um grafo simétrico G=(V,E) completo, onde a cada aresta é associado um peso e |V| = n. Sendo p = {2, ...,n} e k = {1, ..., n/p} devem-se obter k conjuntos disjuntos, com p vértices cada um de tal forma que a soma dos pesos das arestas de cada subconjunto seja máxima. Este problema possui diversas variações e uma delas é o PDM, no caso particular em que k = 1.

Em [BMD00] foi introduzido um novo modelo para tratar o problema de diversidade de grupos de trabalho que permitiu reduzi-lo ao problema de fluxo em redes e desenvolver um algoritmo exato para resolvê-lo. O modelo foi aplicado a uma base de dados real obtida em um curso de pós-graduação.

Em [KG99] foi desenvolvida uma heurística busca tabu para encontrar a máxima diversidade. Segundo os autores, a heurística foi testada gerando aleatoriamente instâncias de problemas com populações de tamanho que variam de n = 100 a n = 1000 elementos onde se desejava obter subconjuntos de m elementos mais diversos com tamanho entre 10% a 30% de n. Os autores citam que testes computacionais foram realizados, mas os resultados não foram comparados com qualquer outro método da literatura.

Além de [Gh96], outro trabalho que propõe a metaheurística GRASP para o PDM é [An03]. Nesta proposta, desenvolveu-se para a fase de construção uma nova heurística construtiva e incorporou-se a busca local encontrada em [Gh96]. O autor gerou uma extensa bateria de testes onde o tamanho da população variou de 10 a 250 elementos. Para avaliação dos resultados produzidos por seu algoritmo, foi implementado um algoritmo exaustivo para as instâncias pequenas (até 50 elementos) para produzir soluções exatas e implementou-se também o algoritmo de Ghosh para a comparação dos resultados.

De nosso conhecimento, os algoritmos GRASP apresentados em [Gh96] e [An03] são os que detêm os melhores resultados aproximados da literatura para o PDM e por isto, estes foram usados para comparações com os algoritmos aqui propostos. Os algoritmos de [Gh96] e [An03] serão detalhadamente descritos na seção 5.

4. A Metaheurística GRASP

Proposta por Feo e Resende, a metaheurística GRASP [FR95, Re01, RR02] é um algoritmo iterativo onde cada iteração é composta por duas fases: uma fase de construção onde uma solução viável para o problema é criada e uma fase de busca local, posterior à construção, que tem como objetivo tentar melhorar a solução inicial obtida na fase de construção. As iterações GRASP são independentes, ou seja, na iteração atual não se leva em conta nenhuma informação das iterações anteriores. O critério de parada normalmente usado é um número máximo de iterações. A melhor solução obtida ao final da execução do GRASP é a solução final. A Figura 1 mostra um pseudocódigo para o GRASP.


A fase de construção do GRASP é também iterativa, onde uma solução é construída elemento a elemento. Cada inserção de um novo elemento é feita através da escolha aleatória em uma lista restrita de candidatos (LRC). Considere para a construção da LRC que o problema aqui tratado é de maximização de uma função f. A LRC é composta de elementos candidatos à solução avaliados de acordo com o benefício associado a sua inclusão na solução parcial através de uma função gulosa g. Os elementos participantes da LRC podem ser escolhidos através de duas formas: pelo número de elementos ou pela qualidade dos elementos [RR02].

Na primeira forma, os elementos candidatos são ordenados em ordem decrescente de benefício segundo a função g e os p primeiros elementos são incluídos na LRC. O valor de p é definido como p = 1 + a (a – 1), onde a é número total de candidatos (a é um dado de entrada que tem valores definidos no intervalo [0,1]). Note que, se a = 0 um algoritmo totalmente guloso é executado, já que só é possível a escolha de um único elemento a ser inserido na solução. Por outro lado, se a = 1, a lista conterá todos os possíveis candidatos, o que resultará em um algoritmo aleatório.

Na segunda forma, considerando um problema de maximização, emin = min{g(e)} o menor incremento a solução parcial de acordo com g e emax = max{g(e)}, o maior incremento, a LRC será constituída dos elementos candidatos à solução cujo valor retornado pela função g esteja no intervalo [(1 – a)(emin – emax) + emax , emax].

Como já citado, a é um valor definido no intervalo [0,1]. Neste caso, se a = 1, estará sendo executado um algoritmo absolutamente guloso, já que somente elementos de maior incremento emax podem ser inseridos na solução e se a = 0, a lista conterá todos os possíveis candidatos, o que resultará em um algoritmo aleatório.

Portanto é perceptível que a escolha do valor de a é um ponto importante no desempenho da metaheurística GRASP. A influência desta escolha na qualidade da solução construída é estudada em [RR02]. Na Figura 2 é mostrado o pseudocódigo da rotina de construção de uma solução.


A busca local é uma tentativa de melhoria da solução obtida na fase de construção (Solucao). Nesta fase, percorre-se a vizinhança da solução corrente buscando uma solução de melhor qualidade. Por exemplo, em um problema onde o objetivo é a maximização de uma função f, entende-se que uma solução t é melhor que Solucao se f (t) > f (Solucao). Se não existir uma melhor solução na vizinhança, a solução corrente é considerada um ótimo local. A busca termina quando um ótimo local for atingido. O pseudocódigo da busca local é apresentado na Figura 3.


Diversos conceitos, alguns já utilizados em outras metaheurísticas, têm sido incorporados ao GRASP como alternativa para tentar melhorar sua eficiência. Dentre estes podem ser citados reconexão por caminhos [LM99], memória de longo prazo [FG99], [GL98], GRASP Paralelo [PPMR95], [MRRP00] GRASP reativo [PR97] entre outros. A idéia de GRASP reativo é utilizada neste trabalho e será discutida a seguir.

Como já citado anteriormente, a composição da lista restrita de candidatos (LRC) é determinada a partir do dado de entrada a. Este dado pode ser responsável pela qualidade das soluções geradas na fase de construção.

Prais e Ribeiro propuseram em [PR97] um método chamado GRASP reativo cuja característica principal é o auto ajuste do valor de a de acordo com a qualidade das soluções previamente encontradas. Neste procedimento, um valor de a é selecionado aleatoriamente em um conjunto A = {a1, a2, ..., am} contendo m possíveis valores de a. Desta forma, já que se tem vários valores de a ao invés de um único, é possível construir listas restritas de candidatos de diferentes cardinalidades. A cada elemento ai Î A é associada uma probabilidade pi , i = 1, ..., m. Inicialmente, tem-se pi = 1/m, o que corresponde a uma distribuição uniforme.

Periodicamente, ou seja, a cada bloco de iterações, a distribuição de probabilidade é atualizada, utilizando as informações coletadas nas iterações realizadas anteriormente. Na aquisição dessas informações, várias estratégias podem ser usadas. Em uma delas, o valor médio das soluções obtidas com cada valor de a é utilizado. Desta forma, no próximo bloco de iterações GRASP, o valor de a com o qual se obteve melhores soluções receberá uma probabilidade maior e, conseqüentemente, possuirá mais chance de ser escolhido e poderá ser mais usado neste bloco de iterações.

5. Descrição dos Algoritmos GRASP da Literatura

Nesta seção os algoritmos GRASP propostos em [Gh96] e [An03] para o PDM são descritos. Inicialmente em ambos os trabalhos, os autores consideram que para construir uma solução completa do PDM, tem-se m soluções parciais, assim, cada solução parcial é aqui denotada como Mc-1 , ou seja, uma solução parcial que contém c-1 elementos (1< c < m).

5.1 Algoritmo GRASP de [Gh96]

Na fase de construção, para se gerar uma solução Mc a partir de Mc-1 são calculados dois valores associados a cada elemento i Î N – Mc-1 candidato a ingressar na solução parcial. O primeiro valor corresponde à soma dos índices de diversidade do elemento candidato i aos elementos já pertencentes à solução parcial acrescida da soma dos índices de diversidade de i aos m – c elementos que apresentam as menores distâncias de i. Este valor é considerado um limite inferior de distâncias e é denominado DzL(i). O outro valor a ser calculado é, equivalentemente, um limite superior de distâncias DzU(i), e corresponde à soma dos índices de diversidade de i aos elementos já pertencentes à solução parcial acrescida da soma dos índices de diversidade de i aos m – c elementos que apresentam as maiores distâncias de i. Os cálculos de DzL(i) e DzU(i) são mostrados nas equações 11 e 12.

O fator aleatório da heurística está na escolha randômica de um número u no intervalo (0,1). A partir de sua determinação, calcula-se Dz'(i) = DzL(i) + uDzu(i). O elemento i que retorna o maior valor de Dz' é incluído na solução parcial. Este procedimento é repetido até que seja obtida uma solução completa com m elementos.

Em [Gh96] é proposta uma busca local exaustiva para cada iteração GRASP onde, a partir de uma solução completa, a cada passo verifica-se a melhoria associada à troca de cada elemento i Î M por cada elemento j Î N – M. Essa melhoria é rotulada como Dz(i,j) e é calculada da seguinte forma:

5.2 Algoritmo GRASP de [An03]

O GRASP proposto neste artigo, inicialmente, para cada i Î N calcula dois valores que serão usados na fase de construção. O primeiro deles é chamado SD(i) e corresponde à soma dos índices de diversidade de i a todos os demais elementos j Î N - {i}. O segundo valor, denominado MD(i) corresponde à média dos índices de diversidade, calculada fazendo-se a soma da diversidade de i a todos os demais elementos j Î N - {i}, e dividindo-se esta soma pelo número de elementos em N. Os cálculos de SD(i) e MD(i) são detalhados nas equações 14 e 15.

Na fase de construção, a escolha dos elementos de M é feita como se segue. O primeiro elemento da solução é selecionado aleatoriamente dentre os m elementos de maior valor em SD. A partir daí, para construir cada solução parcial, Mc-1 com 2 < c < m, é calculado, para cada i Î N – Mc-1 candidato à solução, o valor de SDS(i) que corresponde à média dos índices de diversidade entre i e os elementos j Î Mc-1, que já foram incluídos na solução parcial como pode ser visto na equação 16.

Em seguida, é calculado para cada candidato i o valor de z(i), baseado em SDS(i) segundo o seguinte critério: se a solução está a poucos elementos de ser completada então elementos com SDS(i) alto serão incluídos, caso contrário, deve ser avaliada a contribuição que a inserção do elemento trará também com base em MD(i). O cálculo de z(i) é detalhado na equação 17.

Após todos os Dz(i) terem sido calculados, eles são ordenados de forma crescente e com os m elementos de maiores Dz(i) é calculado D que resulta da diferença entre o maior e menor Dz(i) dividido por m – 1. Com os Q maiores elementos cuja diferença entre seu Dz e o Dz do próximo elemento seja menor que o valor de D é criada uma LRC de onde um elemento é selecionado aleatoriamente para fazer parte da solução. O cálculo de D pode ser visto na equação 18.

O procedimento de construção se encerra quando uma solução completa é formada. Em [An03], a busca local utilizada é a mesma de [Gh96].

6. Algoritmos Propostos

Nesta seção são apresentadas novas propostas de algoritmos de construção e busca local para a metaheurística GRASP aplicada a solução aproximada do PDM. Os métodos de construção apresentados incorporam estratégias que visam melhorar a qualidade e a diversidade das soluções encontradas nesta etapa.

Outra proposta refere-se ao uso de estratégias de atualização dinâmica do parâmetro a no GRASP obtendo uma versão denominada GRASP Reativo [PR97] que, conforme citado na seção 3, estende o conceito do GRASP original com iterações independentes a fim de levar informações de uma iteração para outra. A idéia é de, inicialmente, utilizar diferentes valores do parâmetro a para cada instância do PDM durante certo número de iterações e num segundo bloco de iterações privilegiar, com maior número de iterações, os valores de a para os quais foram encontradas as melhores soluções até o momento.

Outra estratégia implementada neste trabalho é o uso de um mecanismo de filtro de soluções na etapa de construção do GRASP. Este procedimento é motivado pelo fato que, na maioria das metaheurísticas, a etapa de busca local consome a maior parte do tempo de computação do algoritmo. Desta forma, o objetivo é inicializar uma busca local com soluções de melhor qualidade para, com isso, chegar a ótimos locais de forma mais econômica. Assim, a cada iteração GRASP, a fase de construção gera ao invés de uma, p soluções de modo que somente a melhor delas seja enviada para a busca local.

As heurísticas de construção aqui propostas utilizam conceitos clássicos de heurísticas de inserção adaptados ao método GRASP. O objetivo maior deste trabalho, como dito anteriormente, é analisar o impacto de cada método de construção e busca local propostos e os existentes na literatura no desempenho da metaheurística GRASP.

Heurística Aleatorizada das K Maiores Distâncias (HA-KMD)

Esta heurística constrói uma solução inicial de forma iterativa onde um elemento é selecionado para ser inserido na solução parcial de forma aleatória partindo de uma LRC que contém K melhores candidatos.

A LRC é criada da seguinte maneira: para cada i Î N são selecionados os K elementos j Î N – {i} que possuem os maiores índices de diversidade em relação a i, ou seja, os maiores d(i, j). Esses valores são somados, totalizando si. Uma lista de índices i ordenada em ordem decrescente de valor de si é criada e, a partir dela, são selecionados os K primeiros elementos da lista para compor a LRC.

Definida a LRC, seleciona-se aleatoriamente um elemento s Î LRC.

Para implementar o GRASP reativo com o parâmetro K variável, este procedimento de construção é dividido em dois blocos de iterações. Seja t o número total de iterações do algoritmo GRASP.

O primeiro bloco B1 corresponde às 0,4t primeiras iterações e nele quatro valores distintos de K = Ki, i = 1, ..., 4 são usados. Para isto, B1 é subdividido em quatro blocos ri contendo 0.1t iterações e em cada ri é usada uma LRC de tamanho Ki. Os valores de Ki estão dispostos na Tabela 1 onde m é o número de elementos em uma solução viável e µ = (n-m)/2.

Após a execução da última iteração de B1, a qualidade das soluções obtidas com cada Ki é avaliada. Isto é feito calculando-se o custo médio das soluções obtidas em cada ri , onde z(soliq) corresponde ao custo da solução encontrada na q-ésima iteração de ri, q = 1, ..., 0.1t e i = 1, ..., 4. Em seguida, é criada uma lista LK contendo os Ki ordenados de forma decrescente em relação a zmi (lembrando que estamos tratando de um problema de maximização). Desta forma, a primeira posição de LK conterá o valor de Ki que obteve maior zmi e assim por diante.

A partir daí, inicia-se a execução do segundo bloco de iterações (B2) composto pelas 0.6t iterações restantes, no qual se fará uso das informações coletadas em B1. Este bloco também deve ser dividido em quatro subintervalos vi, mas, ao contrário do ocorre em B1, cada subintervalo conterá um número diferente de iterações conforme mostra a Tabela 2 e, além disso, em cada vi deve ser usado o valor de K igual a LKi. Deve-se ressaltar que a Tabela 2 mostra que os valores de Ki que produziram melhores soluções serão utilizados em um número maior de iterações.

Neste método aplicamos o filtro de soluções gerando, em cada iteração GRASP, 400 soluções. Somente a melhor delas é enviada à fase de busca local. O pseudocódigo do procedimento HA-KMD é apresentado na Figura 4.


Heurística Aleatorizada das K Maiores Distâncias (HA-KMD2)

Esta heurística é semelhante à HA-KMD. A diferença entre as duas está na maneira como a LRC é alterada a cada inserção de um novo elemento na solução parcial. Tendo em vista que na estratégia HA-KMD a única mudança na LRC após sua construção é a retirada do elemento à medida que este é inserido na solução, HA-KMD2 foi projetada para ser mais adaptativa, fazendo com que a LRC seja inteiramente recalculada após a inclusão de cada elemento na solução parcial corrente.

Isto é feito da seguinte maneira. Considere que para obter uma solução completa, com m elementos, teremos m soluções parciais Mc, com c elementos, . Para construir M1 o critério usado é o mesmo de HA-KMD, ou seja, um elemento é selecionado aleatoriamente a partir da LRC que corresponde aos K elementos de maiores somas de diversidade. Nas demais soluções parciais, para cada elemento i Î N – Mc são selecionados os K – c – 1 elementos j Î N – Mc – {i} que apresentam maiores d(i, j).

Esses valores são somados, resultando em sfi. Além disso, para cada i Î N _ Mc é feita a soma dos índices de diversidade entre i e todos os j Î Mc -1 , resultando em sdi. Uma lista inicial de candidatos LIC contendo todos os índices i em ordem decrescente de si = sfi + sdi, é criada.

A LRC é formada pelos K primeiros elementos de LIC. Um elemento é selecionado aleatoriamente da LRC para fazer parte da solução.

A estratégia de GRASP Reativo é implementada da mesma maneira como em HA-KMD, assim como o filtro de soluções, com alteração, porém, no número de soluções construídas a cada iteração GRASP que passa a ser 2 soluções, já que este procedimento exige mais esforço computacional que HA-KMD. Somente a solução de maior valor entre as soluções construídas passa pelo procedimento de busca local.

Heurística Aleatorizada da Inserção mais Distante (HA-IMD)

Este método incorpora o conceito clássico da heurística iterativa de inserção mais distante, sendo esta modificada de forma a torná-la adaptativa, gulosa e randômica.

Na construção de cada solução usando HA-IMD, tem-se m soluções parciais. Cada uma delas corresponde à solução parcial Mc que conterá c elementos.

O primeiro elemento da solução, m1, é escolhido aleatoriamente entre todos os elementos pertencentes a N. O segundo elemento a ser selecionado deve ser o indivíduo j Î N – M1 que oferece o maior índice de diversidade entre m1 e j.

A partir do terceiro elemento, devemos calcular Dsoma(j), "j Î N – Mc-1 apresentado na equação 19, onde o primeiro termo corresponde à soma das diversidades entre todos os elementos já pertencentes a solução parcial Mc-1 e o segundo, à soma das diversidades entre o candidato j e todos os elementos da solução parcial.

A seguir a LRC é computada. A partir do cálculo de Dsoma(j) uma lista inicial de candidatos é criada (LIC) contendo os índices dos j elementos candidatos ordenados de forma decrescente em relação a Dsoma. Os primeiros a ´ n elementos são selecionados para compor a LRC.

Neste procedimento, o conceito de GRASP reativo é implementado da mesma forma que em HA-KMD. Seja t o número total de iterações do GRASP. O primeiro bloco de iterações B1 = [1, ..., 0.4t ] é dividido em quatro subintervalos de iterações ri , i = {1, ..., 4} contendo cada um deles um número igual de iterações. Utiliza-se o conjunto a = {a1, a2, a3, a4} onde para cada ri um ai é associado. Os valores de a são apresentados na Tabela 3. Considere t o número total de iterações do GRASP.

Após o término da última iteração de B1, deve-se avaliar quais os valores de a que ofereceram melhores médias de soluções. Isto é feito como em HA-KMD, ou seja, calculando-se o custo médio , onde z(soliq) corresponde ao custo da solução encontrada na q-ésima iteração do intervalo ri, q = 1, ..., 0.1t e i = 1, ..., 4. Os valores de ai são armazenados em uma lista La ordenada por zmi.

O próximo bloco de iterações B2 com as 0.6t restantes também será dividido em quatro subintervalos vi, como apresentados na Tabela 2, e nele serão usadas as informações adquiridas em B1 e armazenadas em La. Desta forma, para cada vi é usada uma LRC de tamanho Lai.

A partir da LRC é selecionado, aleatoriamente, um elemento para fazer parte da solução parcial. Este processo é repetido até que uma construção completa seja obtida. O filtro de soluções também é utilizado neste método. Para cada iteração do GRASP são criadas n soluções e somente a solução com maior custo prossegue para a fase de busca local.

O pseudocódigo da HA-IMD é apresentado na Figura 5.


Método de Busca Local

Este trabalho propõe também um novo procedimento de busca local, que a partir de agora será denotado por Busca Local Proposta (BLP). A BLP utiliza duas estruturas de vizinhanças: na primeira delas V1, é usada a busca local proposta em [Gh96] aqui denominada BLG.

Em seguida, a solução obtida na BLG passa a ser a solução corrente e daí prossegue-se com a segunda estrutura de vizinhança denotada V2 que é semelhante à primeira, com a única diferença que, ao invés de a cada passo um elemento i da solução ser trocado por outro j fora da solução, são permutados simultaneamente dois elementos da solução por dois fora da solução. A cada troca a melhoria obtida pela nova solução Dz(i, j, l, k) onde i, j Î M e l, k Î N – M é avaliada, conforme demonstrado na equação 20.

A BLP é encerrada quando nenhuma melhora for obtida após permutar todos os pares internos e externos ao conjunto M atual. O pseudocódigo da BLP é apresentado na Figura 6. Observe que a BLP, embora utilize duas estruturas de vizinhança não é baseado na metaheurística VNS [HM05].


7. Resultados Computacionais

A fim de avaliar o desempenho das heurísticas desenvolvidas para o PDM, foram feitas combinações de métodos de construção com os de busca local para serem inseridos na estrutura do método GRASP. As versões propostas são apresentadas na Tabela 4. Estes algoritmos foram implementados usando linguagem de programação C++ e compilados na versão 3.2.2 do compilador GNU g++.

Para que comparações pudessem ser realizadas com heurísticas GRASP da literatura, foi implementado também o algoritmo proposto em [Gh96], aqui denominado CGh+BLG. Além disso, foi implementada uma variação deste que usa a construção proposta em [Gh96] e a Busca Local Proposta (BLP), chamada CGh+BLP. O código gerado em [An03] foi cedido pelos autores ao que se denominou CAn+BLG. Os testes foram executados em um AMD Athlon 1.3 GHz com 256 Mb de RAM usando sistema operacional Mandrake Linux 9.1.

Na realização dos testes, dois conjuntos de instâncias foram utilizados. O primeiro a ser apresentado foi desenvolvido em [An03]. Estas instâncias apresentam conjuntos N com cardinalidade n = 50, 100, 150, 200 e 250 elementos. No total são 15 instâncias divididas em:

Grupo I: Índices de diversidade gerados aleatoriamente em uma distribuição de números inteiros entre 1 e 9999.

Grupo J: Índices de diversidade gerados aleatoriamente, com 50% deles obedecendo a uma distribuição de números inteiros entre 1 e 9999 e os demais a partir de uma distribuição de números inteiros entre 1 e 4999.

Grupo K: Índices de diversidade gerados aleatoriamente, com 50% deles obedecendo a uma distribuição de números inteiros entre 1 e 9999 e os demais a partir de uma distribuição de números inteiros entre 5000 e 9999.

O segundo conjunto de instâncias foi proposto em [SOM04]. O número de elementos n destas instâncias tem valores iguais a 10, 20, 30, 40, 50, 100, 200, 300 e 500 e para cada valor de n = ½N½ foram geradas quatro instâncias distintas, com valores de m = ½M½ iguais a 10%, 20%, 30% e 40% de n. Desta forma, foi criado um total de 36 instâncias. Estas instâncias têm os índices de diversidade entre cada par de elementos gerados aleatoriamente em uma distribuição uniforme de números entre 0 e 9.

A fim de caracterizar as instâncias, para cada valor de m associamos uma letra: A, B, C e D correspondendo a 10%, 20%, 30% e 40% de n, respectivamente. Assim, a nomenclatura 10B, por exemplo, significa uma instância de ½N½ = n = 10 elementos onde se deseja maximizar a diversidade entre 20% de n (m = dois elementos). Excepcionalmente, no segundo conjunto, a instância 10A é desconsiderada pelo fato de não representar um problema real.

7.1 Testes com Conjunto de Instâncias de [An03]

Para todos os grupos que compõem este conjunto de instâncias, o critério de parada de cada algoritmo GRASP foi o número de 500 iterações. Cada instância foi executada três vezes por cada algoritmo heurístico e os valores médios de execução e tempos médios foram calculados.

As Tabelas 5, 6 e 7 apresentam um desempenho médio de três execuções de cada algoritmo para cada instância dos Grupos I, J e K. Ainda nas Tabelas 5, 6 e 7, a coluna 1 mostra a instância em questão e as colunas 2 - 10 descrevem as diferenças médias entre a melhor solução obtida considerando todos os algoritmos analisados e média das soluções obtida por cada algoritmo, chamada dif e calculada conforme a equação 21. Células com o símbolo (-) significam que esta diferença foi igual a zero. A última linha da Tabela 5 mostra a média geral de dif para cada algoritmo. Obviamente quanto menor for esta média, melhor será o desempenho do algoritmo.

É possível observar que em todos os grupos de instâncias analisados até o momento, os algoritmos propostos KMD+BLG, KMD+BLP, KMD2+BLG, KMD2+BLP, IMD+BLG e IMD+BLP obtiveram as melhores soluções na média. Isto pode ser visto na tabela 8 que mostra, para cada grupo, o número de vezes em que cada algoritmo obteve uma solução de melhor valor no total de 20 testes.

Para as instâncias do Grupo I, as heurísticas propostas estiveram em média a no máximo 0,02% da melhor solução enquanto o algoritmo de [Gh96] se manteve a 0,21% e o de [An03] a 0,09%. Pela Tabela 8, em um total de 20 instâncias, KMD+BLP obteve maior sucesso, chegando à melhor solução 17 vezes. Os algoritmos da literatura CGh+BLG e sua variação CGh+BLP obtiveram melhor soluções em 14 instâncias e CAn+BLG em 10 das 20 instâncias.

No Grupo J, os algoritmos propostos KMD+BLG, KMD+BLP, KMD2+BLG, KMD2+BLP, IMD+BLG e IMD+BLP obtiveram, em todos os testes, o melhor valor. Já os algoritmos da literatura CGh+BLG e sua variação CGh+BLP ficaram, ambos, em média, a 0,26% da melhor solução e CAn+BLG a 0,05%.

No Grupo K, os algoritmos propostos KMD+BLG, KMD+BLP, KMD2+BLG, KMD2+BLP obtiveram, mais uma vez, as melhores soluções em 100% dos casos. IMD+BLG e IMD+BLP alcançaram a melhor solução em 18 das 20 instâncias, além disso, as duas heurísticas estiveram a, no máximo, 0,02% da melhor solução. CGh+BLG alcançou melhores soluções em somente 8 dos 20 testes. Quanto a CGh+BLP, nota-se que a BLP pôde melhorar o desempenho apresentado pelo GRASP original de Ghosh, chegando à melhor solução em 19 do total de instâncias do grupo. O algoritmo de [An03] encontrou a melhor solução em 7 dos 20 testes e manteve-se a 0,10% das melhores soluções apresentadas, a pior diferença observada dentre os algoritmos. Um fato que pode ser observado através dos experimentos é que conforme há o aumento do tamanho das instâncias, o algoritmo da literatura CAn+BLG tem seu desempenho piorado. As Tabelas 9, 10 e 11 apresentam a média dos tempos em segundos gastos por cada algoritmo nas instâncias do Grupo I, Grupo J e Grupo K, respectivamente.

A partir dos resultados parciais observa-se que a BLP demanda tempo de computação maior. Isto pode ser visto comparando-se os algoritmos que utilizam o mesmo método de construção mas que diferem entre si pelo uso da busca local BLG ou BLP, como ocorre por exemplo com propostos KMD+BLG e KMD+BLP, KMD2+BLG e KMD2+BLP, IMD+BLG e IMD+BLP. Contudo, este resultado era esperado já que na BLP uma busca completa BLG é realizada antes da mudança da estrutura de vizinhança.

Verifica-se também que a heurística proposta em [An03] demanda um tempo menor de computação compensando a fraca qualidade das suas soluções. Em seguida, os algoritmos mais econômicos em relação aos tempos exigidos são os propostos KMD+BLG e KMD+BLP. No topo como o mais exigente em termos de tempos gastos está o KMD2+BLP. Nos testes aqui efetuados observou-se também uma grande similaridade nos tempos de KMD2+BLG, IMD+BLG, IMD+BLP, CGh+BLP e o algoritmo da literatura CGh+BLG.

Deve-se alertar que a análise no desempenho em relação aos tempos computacionais exigidos são aqui feitos a partir do critério de parada utilizado (número máximo de iterações). Entretanto, se colocarmos outros critérios de parada, podemos ter outras interpretações em relação ao tempo computacional, como mostrado na análise probabilística feita adiante.

7.2 Testes com Conjunto de Instâncias de [SOM04]

Com este segundo conjunto de instâncias foram realizadas três diferentes baterias de testes que serão descritas a seguir. Na primeira e segunda bateria de testes, cada algoritmo foi executado três vezes para cada instância usando diferentes sementes para geração de números aleatórios e em cada execução foram usadas novamente 500 iterações GRASP como critério de parada. Na primeira bateria de testes, o valor objetivo da solução obtido pelas heurísticas GRASP é comparado com o valor da solução exata. Para obter soluções exatas foi utilizada a formulação de programação linear inteira (P2) proposta em [KGD95] (e descrita na seção 3) e o software GLPK (GNU Linear Programming Kit) [Ma04] que utiliza um método branch and bound e dual simplex em sua implementação. Para estes experimentos foram consideradas somente as instâncias com valores de n<100.

As Tabelas 12 e 13 descrevem os resultados deste experimento. A Tabela 12 mostra na coluna 1 a instância em questão, na coluna 2 o valor ótimo (exato) e nas colunas 3-11, a média dos valores das soluções obtidas nas três execuções dos algoritmos heurísticos. Na Tabela 12, valores em negrito denotam o valor ótimo (quando este é conhecido ou a melhor solução obtida considerando todos os algoritmos aqui analisados). Neste último caso, ocorre nas instâncias 40C até 100D, onde o método exato foi truncado após um tempo de execução máxima pré-estabelecido igual a 36.000 segundos.

Para os testes com instâncias de 10B até 40B o GLPK pôde encontrar solução exata em tempo computacional viável.

No entanto, quando o teste foi executado para a instância 40C, o algoritmo ficou em execução por 25 dias e ainda sim não havia terminado o processamento. A partir daí, limitou-se o tempo de processamento em 36.000 segundos e a melhor resposta obtida foi considerada (valores em * na segunda coluna da Tabela 12).

Analisando-se os resultados obtidos na Tabela 12, pode-se concluir que os algoritmos KMD+BLG, KMD+BLP, KMD2+BLG, KMD2+BLP, IMD+BLG e IMD+BLP propostos nesse trabalho foram capazes de encontrar uma solução ótima em 100% das instâncias onde se conhece o valor ótimo ou um valor médio melhor que o valor encontrado pelo algoritmo exato truncado em 100% das instâncias (que tiveram o tempo de computação do GLPK limitado).

A heurística da literatura CGh+BLG e sua variação, CGh+BLP foram, ambas, capazes de encontrar solução ótima e solução igual ou superior (melhor) à solução encontrada pelo algoritmo exato com tempo limitado em 17 das 23 instâncias testadas. O algoritmo CAn+BLG encontrou os melhores valores em 16 das 23 instâncias.

Em média, CGh+BLG e CGh+BLP estiveram a 0,99% do melhor custo e CAn+BLG a 1,32%.

A Tabela 13 mostra na coluna 1 a instância, na coluna 2 o tempo de processamento para obter uma solução exata e nas colunas 3-11, o tempo médio de processamento, em segundos, utilizado para obter as soluções usando os algoritmos GRASP. Quanto a tempo computacional verifica-se um crescimento exponencial do algoritmo exato e tempos bem menores nos algoritmos GRASP.

Na segunda bateria de testes deste segmento, foram usadas as instâncias 200A até 500D. Estes testes têm como objetivo comparar os resultados obtidos pelos algoritmos propostos com os da literatura, para instâncias de porte maior.

As Tabelas 14, 15 e 16 mostram os resultados médios obtidos. A Tabela 14 apresenta a média das soluções obtidas pelas heurísticas. Em negrito estão os valores das melhores soluções.

A Tabela 15 mostra o número de vezes em que cada algoritmo atingiu a melhor solução em um total de 16 instâncias.

Observa-se que os algoritmos KMD2+BLP, KMD2+BLG e IMD+BLP obtiveram o melhor desempenho médio. Quanto aos algoritmos da literatura, em nenhuma das instâncias CAn+BLG chegou a uma melhor solução. CGh+BLG e CGh+BLP alcançaram melhores soluções somente em 2 instâncias dentre as testadas. A partir da Tabela 14 determinamos a diferença percentual média entre a melhor solução de cada instância e a média de cada algoritmo.

Os de melhores resultados foram obtidos por KMD2+BLP, KMD2+BLG e IMD+BLP com 0,08%, 0,10% e 0,12% da melhor solução e os algoritmos da literatura CAn+BLG, CGh+BLG e CGh+BLP a ficaram a 0,33%, 0,34% e 0,33% da melhor solução, respectivamente.

De uma forma geral, nota-se que, apesar dos algoritmos da literatura serem capazes de obter boas soluções para o problema, os algoritmos propostos se mostraram mais eficientes em termos da qualidade da solução obtida.

A Tabela 16 mostra o tempo de processamento médio em segundos de cada algoritmo. Pode-se observar que o algoritmo da literatura CAn+BLG mostra-se novamente como o mais rápido (baseado no critério de parada utilizado) sendo seguido pelo algoritmo proposto KMD+BLG.

7.2.1 Análise Probabilística

Um gargalo observado em alguns algoritmos heurísticos e metaheurísticas da literatura é a sua instabilidade ou a falta de regularidade em seu desempenho. Em outras palavras, é comum ocorrer que uma determinada heurística apresente um bom desempenho para uma classe de problemas ou, mais especificamente, para algumas instâncias e para outras, tenha um desempenho ruim. Um caso mais extremo é observado nas metaheurísticas que possuem componentes probabilísticas, como é o caso dos algoritmos genéticos, alguns algoritmos evolutivos e o GRASP. Nestes métodos, na solução do mesmo problema teste com o mesmo conjunto de dados de entrada, é possível verificar uma variação considerável na qualidade dos resultados a cada execução do algoritmo. No caso específico do GRASP, em algumas versões vistas na literatura, a cada nova execução tem-se uma grande chance de se obter ao final uma solução distinta das anteriores. Desta forma, pode-se ter soluções de ótima qualidade e numa segunda execução, soluções muito fracas. Esta variação é extremamente ruim para a confiabilidade do método.

Estes fatos indicam a importância de, a cada nova proposta de heurísticas GRASP ou algoritmos genéticos, procurar mostrar um estudo em termos da sua robustez mesmo que empiricamente. Isto justifica a proposta de uma nova bateria de testes, agora com o objetivo específico de analisar a regularidade dos algoritmos GRASP aqui apresentados.

Para este estudo, foram escolhidos alguns dos algoritmos que apresentaram as melhores soluções nos testes realizados até o momento e/ou aqueles com menor tempo de processamento. Seguindo este critério chegou-se a seguinte escolha: KMD+BLG, KMD+BLP, KMD2+BLG e KMD2+BLP, além dos algoritmos da literatura, CGh+BLG e CAn+BLG.

Neste tipo de experimento, realizado para as instâncias de 100D a 300D, são feitas 100 execuções independentes de cada algoritmo para cada instância, ou seja, um algoritmo é executado 100 vezes usando sementes distintas para a geração dos números aleatórios.

O critério de parada dos algoritmos é modificado para que a execução prossiga até que uma solução de valor igual ou melhor que um valor alvo estabelecido tenha sido encontrado. Em cada execução i, o tempo ti para atingir o valor alvo é armazenado em ordem crescente.

Uma probabilidade empírica pi =(i–0,5)/100 é associada a cada tempo ti. Desta forma, são plotados os pontos zi=(ti, pi), estabelecendo uma distribuição empírica de tempo para que um algoritmo alcance um determinado valor alvo [ARR02].

Neste trabalho, para cada instância foram calculados dois valores alvos definidos com base nos resultados anteriores. O primeiro alvo pode ser considerado mais fácil do que o segundo, já que este equivale ao valor da pior solução obtida dentre os algoritmos em questão enquanto o segundo corresponde à média dos valores das melhores soluções encontradas pelos algoritmos. A Tabela 17 ilustra os valores dos dois alvos usados para cada instância analisada.

Os resultados desta bateria de testes são apresentados nas Figuras 6-14. Nestes gráficos cada algoritmo é representado por uma curva e quanto mais a esquerda estiver a curva, melhor será o seu desempenho. Ainda deve-se observar que a probabilidade empírica de um algoritmo encontrar uma solução de valor melhor ou igual a determinado valor alvo em um dado tempo de processamento aumenta da esquerda para a direita. De acordo com os experimentos realizados, os algoritmos propostos se mostram na seguinte ordem de desempenho em termos de convergência para valores sub-ótimos: KMD+BLG, KMD+BLP, KMD2+BLG e KMD2+BLP. Tomando-se como exemplo o primeiro gráfico apresentado na Figura 6, a probabilidade de que KMD+BLG encontre o valor alvo 1 em 10 segundos é de aproximadamente 85%, caindo para aproximadamente 68% no KMD+BLP, 40% no CGh+BLG, 35% no KMD2+BLG, 23% no KMD2+BLP e 18% para CAn+BLG.


Ao avaliar as Figuras 6-14, percebe-se que, os algoritmos KMD+BLG e KMD+BLP apresentam, na maioria dos casos, uma convergência mais rápida para os valores alvos estabelecidos. Percebe-se, ainda, que as heurísticas propostas seguem um comportamento bastante semelhante para as diferentes instâncias testadas. Este fato, no entanto, parece não ocorrer com os algoritmos da literatura CGh+BLG e CAn+BLG. Por exemplo, no segundo gráfico da Figura 7, o algoritmo CGh+BLG consegue alcançar probabilidades maiores de chegar à solução alvo que os demais algoritmos para maior parte dos tempos. Algo semelhante se observa no primeiro gráfico da Figura 9, mas, neste caso, CGh+BLG passa a apresentar probabilidades ligeiramente superiores aos demais algoritmos após decorridos 10 segundos. Por outro lado, tem-se que no alvo 2 da instância 300A (segundo gráfico da Figura 10) a curva de CGh+BLG não pôde ser plotada pois, até um tempo de computação de 150.000 segundos, o algoritmo não conseguiu atingir o valor alvo em diversas tentativas independentes. Isto volta a ocorrer no alvo 2 da instância 300B (segundo gráfico da Figura 11). Em algumas execuções foi possível atingir o alvo, mas o tempo médio para que isto ocorresse foi de 45.245 segundos. Supondo que em todas as execuções o alvo fosse atingido com este tempo médio seriam necessários mais de 45 dias para que somente este teste pudesse ser realizado.





Analisando-se o desempenho de CAn+BLG comparado aos demais algoritmos, observa-se que na maior parte dos experimentos o tempo para alcançar determinado valor alvo ao longo das instâncias avaliadas é maior. Isto somente não ocorre na instância 300A (Figura 10) onde CAn+BLG consegue alcançar, para um determinado tempo, maiores probabilidades de obter os valores alvos usados. No alvo 2 da instância 300D, o menor tempo para que o algoritmo chegasse ao alvo foi de 175.097 segundos. Como o algoritmo não apresentou convergência para o valor alvo em todas as execuções, esta curva não foi plotada. Como observado em testes anteriores, este algoritmo (CAn+BLG) sempre mostrou-se o mais rápido. Contudo nos testes desta seção ele apresenta a necessidade de mais tempo para atingir o valor alvo. Isso mostra o cuidado que é preciso ter na avaliação de desempenho de algoritmos heurísticos, pois um determinado critério de parada pode levar a conclusões equivocadas. Nos testes desta seção podemos concluir que nem sempre a heurística que possui uma iteração mais lenta, como os que usam a busca local BLP são os mais lentos se o critério de parada for um valor alvo. Ou seja, iterações mais onerosas podem ser compensadas com um menor número de iterações para atingir um determinado valor alvo sub-ótimo.

Uma outra conclusão que podemos tirar a partir das Figuras 6 - 14 é que, avaliando os algoritmos quanto a sua convergência para valores alvos sub-ótimos, os melhores desempenhos foram alcançados com versões que usam na fase de construção o HA-KMD e HA-KMD2. Outra constatação é a de que, em alguns casos, uma busca local mais sofisticada (mais onerosa em termos de tempos computacionais exigidos) pode se tornar mais competitiva se o critério de parada for o alcance de valores alvos pré-definidos.

A Tabela 18 apresenta o tempo de execução (em segundos) necessário para que os algoritmos atinjam determinadas probabilidades (50% e 75%) de convergência para valores alvos mais difíceis. O símbolo (?) significa que o valor alvo 2 somente foi alcançado em um tempo superior a 150 mil segundos ou não foi alcançado. Por exemplo, observando-se a Tabela 18, o algoritmo proposto KMD+BLG requer um tempo de 4,23 segundos para atingir com probabilidade empírica de 50%, o valor alvo. Esta análise probabilística mostrou que os algoritmos aqui propostos apresentam uma taxa de convergência empírica em média superior que os da literatura e, além disso, observa-se que todas as propostas sempre convergiram para soluções sub-ótimas num intervalo de tempo razoável, ao contrário dos algoritmos da literatura. Esta característica é extremamente importante para mostrar o quanto os algoritmos aqui propostos são confiáveis, ou seja, sempre atingem a solução alvo dentro de um intervalo de tempo estipulado. Isso mostra um nível de robustez promissor para estas propostas.

8. Conclusões

O objetivo principal deste trabalho foi o de analisar o impacto de diferentes heurísticas de construção e de busca local no desempenho da metaheurística GRASP para a solução aproximada do Problema da Diversidade Máxima. Para tanto, foram selecionadas algumas heurísticas da literatura e outras foram propostas no sentido de viabilizar as metas programadas.

Nas heurísticas propostas para o GRASP foi apresentada uma maneira de se utilizar o conceito de GRASP reativo. Além disso, fez-se uso de um procedimento de filtro na etapa de construção do GRASP. Estas duas estratégias aliadas permitiram que as heurísticas obtivessem resultados médios de melhor qualidade. Uma extensa bateria de testes foi realizada com as diferentes heurísticas GRASP propostas neste trabalho e as da literatura. Nestes experimentos, foram geradas instâncias de dimensões bem maiores que as reportadas em [An03], [Gh96] e através destes experimentos foi possível mostrar que as heurísticas propostas promoveram uma melhora na qualidade das soluções encontradas, se comparadas aos da literatura.

Além disso, foi utilizado o software GLPK para obter soluções exatas para parte das instâncias testadas e os algoritmos propostos chegaram a soluções ótimas em todas as instâncias onde este é conhecido. Para algumas instâncias, o GLPK teve seu tempo de processamento limitado em 36.000 segundos. Nestes casos, as heurísticas propostas foram capazes de encontrar soluções melhores exigindo um tempo computacional muito menor. Os algoritmos da literatura, no entanto, não foram capazes de chegar ao ótimo em todas as instâncias.

Os gráficos apresentados na análise probabilística demonstram que os algoritmos propostos se portam de maneira semelhante ao longo das instâncias testadas independente do valor alvo. Esta análise também permitiu verificar que as técnicas aqui propostas apresentam na média uma convergência mais rápida para valores sub ótimos quando comparados com versões da literatura, além de se mostrarem mais estáveis.

Dentre os algoritmos propostos ressaltam-se as versões que utilizam as heurísticas de construção HA+KMD e HA+KMD2. Além disso, os resultados mostram que KMD+BLG e KMD+BLP apresentam bons resultados sendo os mais rápidos dentre os algoritmos propostos enquanto, KMD2+BLG e KMD2+BLP produzem melhores resultados, no entanto, demandam um pouco mais de tempo computacional se o critério de parada usado for o de número máximo de iterações GRASP.

Como sugestões para trabalhos futuros podem ser incluídas o uso de outras metaheurísticas (busca tabu, algoritmos evolutivos híbridos com busca local) para o PDM e estudo de variantes do problema.

Recebido em 02/2005; aceito em 11/2005

Received February 2005; accepted November 2005

  • [Ag97] Agrafiotis, D.K. (1997). Stochastic algorithms for maximizing molecular diversity. Journal Chem. Inf. Comput Sci, 37, 841-851.
  • [ARR02] Aiex, R.; Resende, M. & Ribeiro, C. (2002). Probability distribution of solution time in GRASP: an experimental investigation. J. of Heuristics, 8, 343-373.
  • [An03] Andrade, P.M.F.; Plastino, A.; Ochi, L.S. & Martins, S.L. (2003). GRASP for the maximum diversity problem. In: Proc. of the Fifth Metaheuristics International Conference (MIC) (CD-ROM).
  • [BMD00] Bhadury, J.; Mighty, E.J. & Damar, H. (2000). Maximing workforce diversity in project teams: a network flow approach. Omega, 28, 143-153.
  • [CK97] Cutler, M. & Klastorin, T. (1997). The max diversity problem. Technical Report, University of Washington, Department of Management Science.
  • [DGK94] Dhir, K.; Glover, F. & Kuo, C.-C. (1994). Optimizing diversity for engineering management. In: Proceedings of the IEEE International Engineering Management Conference
  • [FR95] Feo, T. & Resende, M. (1995). Greedy randomized adaptive search procedures. Journal of Global Optimization, 6, 109-133.
  • [FG99] Fluerent, C. & Glover, F. (1999). Improved constructive multicast strategies for the quadratic assignment problem using adaptive memory. INFORMS Journal on Computing, 11, 198-204.
  • [Gh96] Ghosh, J.B. (1996). Computational aspects of maximum diversity problem. Operations Research Letters, 19, 175-181.
  • [GKD95] Glover, F.; Kuo, C.-C. & Dhir, K. (1995). A discrete optimization model for preserving biological diversity. Applied Mathematical Modeling, 19, 696-701.
  • [GKD98] Glover, F.; Kuo, C.-C. & Dhir, K. (1998). Heuristic algorithms for the maximum diversity problem. Journal of Information & Optimization Science, 109-132.
  • [GL98] Glover, F. & Laguna, M. (1998). Tabu Search. Kluwer Academic Publishers, Dordrecht, The Netherlands.
  • [HM05] Hansen, P. & Mladenovic, N. (2005). Variable Neighborhood Search. In: Search Methodologies: Introductory Tutorials in Optimization and Decision Support Techniques [edited by E.K. Burk and G. Kendall], Springer, 210-238.
  • [HRT97] Hassin, R.; Rubinstein, S. & Tamir, A. (1997). Approximation algorithms for maximum dispersion. Operations Research Letters, 21, 133-137.
  • [KG99] Kochenberger, G. & Glover, F. (1999). Diversity data mining. Technical Report, The University of Mississipi.
  • [KGD93] Kuo, C.-C., Glover, F. & Dhir, K. (1993). Analysing and modeling the maximum diversity problem by zero-one programming. Decision Science, 24, 1171-1185.
  • [LM99] Laguna, M. & Martí, R. (1999). GRASP and path relinking for 2-layer straight line crossing minimization. INFORMS Journal on Computing, 11, 44-52.
  • [Ma04] Makhorin, A. (2004). GNU linear programming kit
  • [Ma99] Maser, C. (1999). Ecological diversity in sustainable development: the vital and forgotten dimension. Saint Lucie Press.
  • [MRRP00] Martins, S.L.; Resende, M.G.C.; Ribeiro, C.C. & Pardalos, P. (2000). A parallel GRASP for the steiner tree problem in graphs using a hybrid local search strategy. Journal of Global Optimization, 17, 267-283.
  • [PR97] Prais, M. & Ribeiro, C. (2000). Reactive GRASP: an application to a matrix decomposition problem in TDMA traffic assignment. INFORMS Journal on Computing, 12, 164-176.
  • [PPMR95] Pardalos, P.; Pitsoulis, L.; Mavridou, T. & Resende, M. (1995). Parallel search for combinatorial optimization: genetic algorithms, simulated annealing and GRASP. In: Parallel Algorithms for Irregularly Structured Problems, Springer Verlag, 317-331.
  • [Re01] Resende, M. (2001). Greedy randomized adaptive search procedures (GRASP). In: Encyclopedia of Optimization Kluwer Academic Publishers, 373-382.
  • [RR02] Resende, M. & Ribeiro, C. (2002). Greedy randomized adaptive search procedures (GRASP). In: Handbook of Metaheuristics [edited by F. Glover and G. Kochenberger], Kluwer Academic Publishers, 219-249.
  • [Sa69] Sammon, J. W. (1969). A non-linear mapping for data structure analysis. IEEE Trans. Comput, C-18, 401-409
  • [SOM04] Silva, G.C.; Ochi, L.S. & Martins, S.L. (2004). Experimental Comparison of Greedy Randomized Adaptive Search Procedures for the Maximum Diversity Problem. Lecture Notes on Computer Science, 3059, 498-512.
  • [WL98] Weitz, R. & Lakshminarayanan, S. (1998). An empirical comparison of heuristic methods for creating maximally diverse group. Journal of the Operational Research Society, 49, 635-646.
  • [Un85] Unkel, W.C. (1985). Natural diversity and national forest. Natural Areas Journal, 5, 8-13.
  • *
    Corresponding author / autor para quem as correspondências devem ser encaminhadas
  • Datas de Publicação

    • Publicação nesta coleção
      26 Set 2006
    • Data do Fascículo
      Ago 2006

    Histórico

    • Aceito
      Nov 2005
    • Recebido
      Fev 2005
    Sociedade Brasileira de Pesquisa Operacional Rua Mayrink Veiga, 32 - sala 601 - Centro, 20090-050 Rio de Janeiro RJ - Brasil, Tel.: +55 21 2263-0499, Fax: +55 21 2263-0501 - Rio de Janeiro - RJ - Brazil
    E-mail: sobrapo@sobrapo.org.br