ALGORITMO GENÉTICO PARA O PROBLEMA DA ÁRVORE GERADORA MÍNIMA GENERALIZADO

Documentos relacionados
METAHEURÍSTICAS PARA A SOLUÇÃO DO PROBLEMA DA ÁRVORE DE COBERTURA MÍNIMA GENERALIZADO

ALGORITMO DE BUSCA TABU PARA O PROBLEMA DA ÁRVORE GERADORA MÍNIMA GENERALIZADO

GRASP COM MEMÓRIA ADAPTATIVA PARA O PROBLEMA DA ÁRVORE DE COBERTURA MÍNIMA GENERALIZADO

Introdução aos Algoritmos Genéticos

Inteligência Artificial. Algoritmos Genéticos. Aula I Introdução

Algoritmos Genéticos. Princípio de Seleção Natural. Sub-áreas da Computação Evolutiva. Idéias básicas da CE. Computação Evolutiva

Computação Evolutiva Eduardo do Valle Simões Renato Tinós ICMC - USP

3 Algoritmos Genéticos

Computação Evolutiva. Computação Evolutiva. Principais Tópicos. Evolução natural. Introdução. Evolução natural

3. Resolução de problemas por meio de busca

Algoritmos Genéticos. Estéfane G. M. de Lacerda DCA/UFRN Outubro/2008

Algoritmo Genético. Inteligência Artificial. Professor: Rosalvo Ferreira de Oliveira Neto

Algoritmos Genéticos

Inteligência Artificial

Metahuerísticas: Algoritmos Genéticos. Sistemas de Informação/Ciências da Computação UNISUL Aran Bey Tcholakian Morales, Dr. Eng.

Max Pereira. Inteligência Artificial

Problemas de otimização

4 Métodos Existentes. 4.1 Algoritmo Genético

Fabiano Vieira de Alvarenga, Marcelo Lisboa Rocha

Algoritmos Genéticos. Pontos fracos dos métodos tradicionais. Características de alguns problemas. Tamanho do espaço de busca- Ex. caixeiro viajante:

Otimização com Algoritmos Genéticos no MATLAB. Prof. Rafael Saraiva Campos CEFET-RJ

Pesquisa Operacional Aplicada à Mineração

Pós-Graduação em Engenharia de Automação Industrial SISTEMAS INTELIGENTES PARA AUTOMAÇÃO

Técnicas de Inteligência Artificial

INSTITUTO DE PÓS GRADUAÇÃO ICPG GESTÃO DA TECNOLOGIA DA INFORMAÇÃO

Figura 3.1: Fluxograma do algoritmo da Programação Genética.

1. Computação Evolutiva

Um Estudo Empírico de Hiper-Heurísticas

Algoritmos Genéticos

ALGORITMOS GENÉTICOS. Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ ALGORITMOS GENÉTICOS. Metaheurísticas de Buscas

GT-JeDi - Curso de Desenv. de Jogos IA para Jogos. Gustavo Pessin 2007

5 Estudo de Caso e Resultados

Um Algoritmo Genético com Aprendizado por Reforço Simples aplicado ao problema do Mundo de Grid

Codificação das variáveis: binária Iniciação da população: aleatória Avaliação: função aptidão Operadores. Critério de parada: número de gerações

ALGORITMO GENÉTICO COMO REPRESENTAÇÃO DAS MUTAÇÕES NA BIOLOGIA

Uma Introdução à Busca Tabu André Gomes

Exemplo de Aplicação de Algoritmos Genéticos. Prof. Juan Moisés Mauricio Villanueva cear.ufpb.br/juan

3 Algoritmos Genéticos

4 Implementação Computacional

Tópicos Especiais em Informática Fatec Indaiatuba

Algoritmos genéticos Abordagem unificada de algoritmos evolutivos simples

Aprendizado Evolutivo: Introdução aos Algoritmos Genéticos

Algoritmos Evolutivos para Otimização

Um Algoritmo Genético para o Problema de Roteamento de Veículos com Janelas de Tempo

Estratégias Evolutivas EEs. Prof. Juan Moisés Mauricio Villanueva

Introdução a Algoritmos Genéticos

Métodos de pesquisa e Optimização

Algoritmos Genéticos

Algoritmo Genético para o Problema da Árvore Geradora Generalizada de Custo Mínimo

4 Modelos Propostos para Otimização de Planejamentos com Restrições de Precedência 4.1 Representação com Algoritmos Genéticos

Algoritmos Evolutivos Canônicos

3 Extensões dos modelos matemáticos

Buscas Informadas ou Heurísticas - Parte III

COMPOSIÇÃO DE UMA CARTEIRA DE AÇÕES COM RISCO MÍNIMO E RETORNO ESPECIFICADO: UM ESTUDO UTILIZANDO ALGORITMO GENÉTICO E A FUNÇÃO SOLVER

APLICAÇÃO DE ALGORITMOS BIO-INSPIRADOS EM CONTROLE ÓTIMO

Problema de Satisfação de Restrições. Problema de Satisfação de Restrições. Grafo de restrições. Exemplo: 4 Rainhas como um PSR

Problema de Satisfação de Restrições

Algoritmos Genéticos Fernando Lobo

INF 1771 Inteligência Artificial

Inteligência Artificial

4 Algoritmo Genético com Chaves Aleatórias

NOTAS DE AULA 1 METAHEURÍSTICA 13/10/2016

INTRODUÇÃO À. Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR

3 Métodos de Otimização

Métodos de Busca. Inteligência Artificial. Algoritmos Genéticos. Algoritmos Evolucionários. Prof. Ms. Luiz Alberto Contato:

OTIMIZAÇÃO FUNÇÕES UTILIZANDO ALGORITMOS GENÉTICOS NO APLICATIVO MS EXCEL RESUMO INTRODUÇÃO

CTC-17 Inteligência Artificial Busca Competitiva e Busca Iterativa. Prof. Paulo André Castro

6 Estudos de Casos Porta Lógica OU de 4 Entradas

Otimização por Colônia de Formigas (Ant Colony Optimization - ACO)

INTRODUÇÃO À INTELIGÊNCIA COMPUTACIONAL. Aula 06 Prof. Vitor Hugo Ferreira

GA Conceitos Básicos. Capítulo 3 Prof. Ricardo Linden

SOLUÇÕES HEURÍSTICAS PARA O JOGO DE DAMAS

Relatório Técnico: Busca Tabu Aplicada ao Problema do Caixeiro Viajante

COMPARAÇÃO ENTRE FROTA HOMOGÊNEA E HETEROGÊNEA EM PROBLEMAS DE ROTEAMENTO DE VEÍCULOS CAPACITADOS

Universidade Federal Fluminense

1 Introdução 1.1 Motivação

Aplicação de algoritmos genéticos. Problema da Mochila (knapsack problem)

1. Computação Evolutiva

Algoritmos Genéticos. Indivíduos em uma população competem por recursos e parceiros. Os indivíduos mais bem sucedidos em cada competição vão produzir

3 Otimização Evolucionária de Problemas com Restrição

4 Metáforas de Optimização

INF 1771 Inteligência Artificial

Ciclos hamiltonianos e o problema do caixeiro viajante

Otimização com Algoritmos Evolutivos

Computação Evolutiva. Prof. Eduardo R. Hruschka (Slides baseados nos originais do Prof. André C. P. L. F. de Carvalho)

OTIMIZAÇÃO DA LIMPEZA DE REDES DE TROCADORES DE CALOR EMPREGANDO OS ALGORITMOS GENÉTICOS

Otimização. Unidade 6: Algoritmo Genético. Jaime Arturo Ramírez. 7. Teoria do processo evolutivo num GA. 8. Aspectos avançados

Inteligência Artificial

Algoritmos Genéticos

Universidade Federal do Paraná UFPR Curso de Ciência da Computação CI801 Tópicos em Inteligência Artificial. Algoritmo Memético

O estudo utilizando apenas este material não é suficiente para o entendimento do conteúdo. Recomendamos a leitura das referências no final deste

Créditos. Introdução a Sistemas Inteligentes. Agenda Introdução Breve Histórico. Introdução. Introdução aos Algoritmos Evolutivos

Problema do vendedor: uma abordagem via algoritmos genéticos

Breve Avaliação de Parâmetros básicos de Algoritmos Genéticos

Computação Evolutiva. Aula 4 Usando AEs Prof. Tiago A. E. Ferreira

Modelo de Algoritmo Genético para o Escalonamento de Tarefas em uma Arquitetura Multiprocessadora

Transcrição:

! "#$ " %'&)(*&)+,.- /10.2*&4365879&4/1:.+58;.2*<>=?5.@A2*3B;.- C)D 5.,.5FE)5.G.+ &4- (IHJ&?,.+ /?<>=)5.KA:.+5MLN&OHJ5F&4E)2*EOHJ&)(IHJ/)G.- D - ;./);.& ALGORITMO GENÉTICO PARA O PROBLEMA DA ÁRVORE GERADORA MÍNIMA GENERALIZADO Luciano Ferreira (Unicruz) lferreira@unicruz.edu.br Fernando de Cristo (UFSM/PPGEP) fernandodecristo@yahoo.com.b Felipe Martins Muller (UFSM/PPGEP) felipe@inf.ufsm.br Denis Borenstein (UFRGS/PPGA) denisb@ea.ufrgs.br O problema da árvore geradora mínima generalizado está presente em várias situações do mundo real, tais como no contexto das telecomunicações, transportes e agrupamento de dados, onde uma rede de clusters precisa ser conectada utilizando umm nodo de cada cluster. Nesse trabalho é apresentado o projeto e a implementação de um algoritmo genético para o problema da GMST. O algoritmo genético foi testado com 36 instâncias da TSPLIB geradas através do método de agrupamento Center Clustering. O algoritmo genético proposto encontrou a solução ótima para todas as instâncias. Na seqüência desse trabalho outras instâncias serão testadas, especialmente as instâncias da TSPLIB geradas pela técnica de agrupamento Grid Clustering. Palavras-chaves: Arvore de cobertura mínima, Otimização em grafos, Meta-heurísticas

1. Introdução O problema da árvore geradora mínima generalizado (do inglês, Generalized Minimum Spanning Tree GMST) tem como finalidade, a partir de um dado grafo G com vértices divididos em grupos, encontrar uma árvore T que cubra ao menos um (ou exatamente um) vértice de cada grupo de G, de forma que a soma do custo das arestas de T seja mínima. Portanto, o problema é definido sobre um grafo ponderado G = G(V, E), onde V representa o conjunto de vértices e E = {(i, j): i, j Î V, i j} o conjunto de arestas. Neste problema, o conjunto V de vértices do grafo é particionado em k grupos Vi, i K = {g 1, g 2,..., g k }, conforme Feremans et al. (2001). Esse problema vem despertando o interesse de pesquisadores da área de pesquisa operacional por ser classificado como um problema NP Difícil e por apresentar inúmeras aplicações práticas na área de transportes, energia, telecomunicações, biologia molecular e agrupamento de dados (HAOUARI e CHAOUACHI, 2006), além de aplicações em problemas de localização de facilidades, em problemas de roteamento, em projeto de circuitos integrados e planejamento da produção (DROR et al., 2000). Para demonstrar que o GMST é NP-Difícil Muyng et al. (1995) utilizaram o node cover problem, que é conhecidamente NP-Completo, e demonstraram que ele pode ser polinomialmente reduzido para o GMST. Algumas soluções têm sido propostas para o problema, como por exemplo, Ferreira et al. (2006), Golden et al. (2005), Dror et al. (2000), Haouari e Chaouachi (2006). Porém, analisando a literatura da área, percebe-se que novas alternativas devem ser desenvolvidas e testadas para o contexto desse problema, principalmente para instancias de grande escala. Os algoritmos genéticos são membros da classe de algoritmos de busca inspirados na evolução natural. São métodos generalizados de busca e otimização que simulam os processos naturais de evolução, aplicando a idéia darwiniana de seleção natural de acordo com a aptidão e a combinação com outros operadores genéticos (DROR et al., 2000). A idéia de utilizar algoritmos genéticos para resolver o problema da GMST é motivada pela sua eficiência e robustez para resolver problemas de otimização combinatória de grande escala. Portanto, a principal contribuição desse trabalho é o desenvolvimento de um algoritmo genético para o problema da Arvore de Cobertura Mínima Generalizado. O restante desse trabalho está organizado da seguinte forma: a próxima seção apresenta uma breve revisão bibliográfica sobre os trabalhos que utilizam algoritmos genéticos para resolver o problema da GMST, destacando suas características principais, além de apresentar os demais trabalhos que serviram com base para a elaboração do algoritmo genético proposto; a seção 3 apresenta o algoritmo genético propriamente dito. Os resultados obtidos e o projeto dos experimentos são descritos na seção 4, enquanto que a seção 5 está reservada para as considerações finais e para os trabalhos futuros. 2. Revisão de literatura Um dos primeiro trabalhos analisados para o contexto desse trabalho foi apresentado por Golden et al. (2005). Os autores apresentam dois métodos de busca heurística para o problema GMST: busca local e algoritmos genéticos. O algoritmo genético emprega quatro diferentes operadores genéticos, dois reprodutivos e dois mutativos, crossover, tree separation, mutação randômica e busca local. Nesse algoritmo, cada cromossomo é representado como um vetor de números inteiros, onde cada posição do vetor armazena um vértice de um determinado cluster. Para gerar a população inicial, o autor utilizou duas heurísticas construtivas, uma aleatória, onde um nodo de cada cluster foi selecionado aleatoriamente, e outra que corresponde a uma adaptação do algoritmo Prim. A operação de crossover utilizada é o single-point, onde o ponto de crossover é selecionado aleatoriamente. O autor descreve também um outro operado reprodutivo, chamado tree separation, onde dois descendentes são gerados a partir de um mesmo pai, numa espécie de auto-reprodução. Os autores implementaram uma operação de mutação randomica, tanto o alelo quanto a escolha do novo nodo são feitas aleatoriamente com probabilidade uniforme. Uma heurística de busca local tambem é 2

utilizada como uma espécie de mutação. O critério de sobrevivência dos cromossomos adotada pelos autores é o seguinte: 10% dos sobreviventes são eleitos pela função de fitness, enquanto que os demais 90% são selecionados baseado em uma função de destribuição probabilística. Golden et al (2005) demonstram que ambas as heurísticas propostas encontram rápidas soluções para a GMST. Para estes testes configurou-se uma população inicial de 500 cromossomos, operador de crossover com probabilidade 0.1, tree separation com probabilidade 0.1, operador de mutação randomica com probabilidade 0.7, busca local com probabilidade 0.1 e um ciclo de 500 gerações. Foram usadas 211 instâncias do problema para os testes. O segundo trabalho analisado para o contexto desse trabalho foi elaborado por Haouari e Chaouachi (2006), os autores propõem um algoritmo genético onde cada cromossomo é representado como uma string de números inteiros de tamanho s (s é o número de subgrupos) na qual o valor k- ésimo gene corresponde ao índice de um dos vértices que fazer parte do grupo k. A heurística PROGRES, detalhada em Haouari e Chaouachi (2002), é utilizada para gerar a população inicial. Os autores utilizam um operador de crossover de dois pontos, onde os dois pontos de crossover são selecionados aleatoriamente. Assim como em Golden et al. (2005), é utilizado um operador de mutação randômica. Para aumentar a velocidade computacional, o algoritmo utiliza uma restrição de busca para o subgrupo de arestas gerados através de um passo de processamento com a heurística PROGRES. A população inicial utilizada no algoritmo genético foi de 100 cromossomos, o número de gerações foi definido em 16, a probabilidade de realização do crossover foi 0.9, ao passo que a operação de mutação foi realizada com probabilidade 0.1. Com essa comfiguração o algoritmo genético atingiu o valor ótimo em 92.5% das instâncias testadas. Um terceiro algoritmo genético, proposto por Dror et al. (2000), foi analisado durante a revisão bibliográfica desse trabalho. Nesse algoritmo os autores utilizam uma representação binária para cada cromossomo (o valor 1 indica que o vértice faz parte da árvore de cobertura mínima; o valor 0 indica que o vértice não faz parte da árvore). A população inicial é criada através da Heurística de Inserção, similar ao método proposto por Prim, o operador de crossover utilizado é o single-point, enquanto que uma mutação randômica é realizada. Os parâmetros para o algoritmo são os seguintes: tamanho da população: 100, número total de gerações: 20, probabilidade de mutação: 0.01; somente os cromossomos mais aptos sobrevivem a gerações futuras. Por fim, outro trabalho bastante importante para o desenvolvido desse trabalho foi o apresentado por Ferreira et al. (2006). Nesse trabalho os autores desenvolveram uma heurística GRASP com memória adaptativa para o problema da GMST. Importante para o contexto desse trabalho foram as heurísticas construtivas descritas no trabalho (Construtivo C1, Construtivo C2, Construtivo C3 e Construtivo C4) e a idéia da utilização da Reconexão de Caminhos (do inglês Path Relinking) para o contexto do problema da árvore de cobertura mínima generalizado. A técnica de reconexão de caminhos apresentada em Glover et al. (2000) é uma forma de explorar as possíveis trajetórias (soluções intermediárias) existentes entre duas soluções que apresentam certo nível de qualidade. O algoritmo parte de uma determinada solução (base) e, passo-apasso, a transforma em outra (alvo). Nesse trajeto, entende-se que pode ser encontrada uma solução melhor que as duas soluções extremas (FERREIRA et al., 2006). Há diversas formas de se implementar a Reconexão de Caminhos, ver por exemplo, Andrade (2004) para maiores detalhes. 3. Algoritmo genético proposto Algoritmos genéticos são modelos computacionais que imitam os mecanismos de seleção natural para resolver problemas de otimização. Foram inicialmente desenvolvidos John Holland e sua equipe nos anos 60. Essa seção apresenta a descrição do algoritmo genético desenvolvido para o problema da árvore geradora mínima generalizado. 3

3.1 Representação dos cromossomos Algoritmos genéticos trabalham sobre uma população ou conjunto de soluções para um dado problema. Cada indivíduo na população é chamado de cromossomo. No presente trabalho o objetivo é determinar uma árvore de custo mínimo passando por pelo menos um vértice de cada grupo. Dessa forma, cada cromossomo foi representado como um vetor de números inteiros de mesmo tamanho do número de grupos de vértices. O alelo de um dado gene dever ser um dos vértices do grupo correspondente a sua posição no vetor. A Figura 1 apresenta um exemplo de GMST com quatro grupos de vértices. Figura 1 Exemplo de GMST Fonte: Ferreira et. al. (2006) Para essa árvore, podem-se representar os cromossomos da seguinte forma, por exemplo: 3-5- 7-11; 1-4-8-12; e, 2-6-9-12. 3.2 Geração da população inicial Haouari e Chaouachi (2006) sugerem que a qualidade da população inicial é muito importante para a qualidade da solução final dos algoritmos genéticos. Dessa forma, diferentes alternativas para gerar a população inicial de cromossomos foram implementadas e estão disponíveis para uso: 1) Construtivo C1, conforme Ferreira et al. (2006); 2) Construtivo C2, conforme Ferreira et al. (2006); 3) Construtivo C3, conforme Ferreira et al. (2006); 4) Heurística de Inserção, conforme Dror et al. (2000); e, 5) Soluções randômicas, conforme Golden et al. (2005). Os cromossomos gerados nessa etapa constituem a população pai, pois serão submetidos a operações de reprodução para gerar novos descendentes, os cromossomos filhos. O tamanho da população inicial é um dos parâmetros do algoritmo e no decorrer desse trabalho será apresentado o valor que se mostrou mais apropriado durante os testes. 3.3 Avaliação e seleção dos cromossomos Cada cromossomo da população pai é avaliado através de uma função de fitness, o valor dessa função é dado pelo custo da GMST. A seleção dos cromossomos é feita de acordo com o método da roleta (do inglês roulette-wheel procedure), conforme Goldberg (1986 apud DANIEL e RAJENDRAN, 2005). De acordo com esse procedimento, a probabilidade de selecionar um cromossomo k é dada pela função: P k f k = n k ' = 1 f k ' A idéia desse método é selecionar cromossomos aleatoriamente, porém proporcionando maiores chances de reprodução aos mais aptos. Após várias gerações, os cromossomos menos aptos tendem a ser eliminados e os mais aptos a se reproduzir mais. Para exemplificar o procedimento de seleção, vamos considerar quatro cromossomos com f 1 =10, f 2 =20, f 3 =30 e f 4 =40, com valores para P 1 =0.1, P 1 =0.2, P 1 =0.3 e P 1 =0.4. A probabilidade acumulada de selecionar os cromossomos 1, 2, 3 e 4 4

será então: 0.1, 0.3, 0.6 e 1.0, respectivamente. Para escolher um cromossomo, portanto, gera-se um número randômico uniformemente distribuído entre 0 e 1, o cromossomo correspondente é selecionado. Vamos supor que o número 0.6 foi gerado aleatoriamente, isso significar dizer que o cromossomo 3 deve ser selecionado. 3.4 Crossover Duas alternativas para operações de crossover foram implementadas e testadas ao longo do desenvolvimento desse trabalho. A primeira foi o single-point crossover e a segunda opção foi o crossover uniforme. O primeiro tipo de crossover é ilustrado na Figura 2, deve-se gerar um número aleatório para determinar o ponto de crossover, após trocar os genes de um cromossomo com outro, com exceção daqueles que se localizam antes do ponto de crossover. Na Figura 2, o ponto de crossover foi o cromossomo 2, portanto, os dois primeiros genes de cada cromossomo permaneceram inalterados, enquanto que os demais são trocados. Pais Filhos 20 135 190 90 20 135 210 100 20 80 210 100 20 80 190 90 Figura 2 Exemplo de single-point crossover O segundo tipo de crossover é ilustrado na Figura 3, nesse caso, os genes que os pais tem em comum são mantidos, formando um template para gerar os novos descendentes. Enquanto que os demais genes são trocados para completar o alelo dos filhos. Pais Filhos 20 135 190 100 20 80 210 100 20 80 210 100 20 135 190 100 3.5 Mutação Figura 3 Exemplo de crossover uniforme Três operações de mutação foram implementadas e testadas: mutação randômica, busca local e tree separation. Na mutação randômica um gene é escolhido aleatoriamente e seu valor é trocado por outro vértice do mesmo cluster. O novo vértice também é escolhido de forma aleatória. Na busca local os clusters são visitados de acordo com uma ordem previamente estabelecida até que nenhuma melhoria de custo seja possível de ser realizada. Quando um cluster é visitado, o operador de busca local avalia todos os outros vértices do cluster e seleciona aquele que representa a melhor alternativa, ou seja, aquele que diminui o custo da GMST em maior grandeza. Outro operador de mutação avaliado foi o tree separation. Essa operação consiste em gerar dois descentes a partir de um único pai, fato que pode ser visto como um operador de auto-reprodução (GOLDEN et al., 2005). A idéia é remover um arco da árvore pai, aquele que possui o maior custo é removido primeiro, criando duas sub-árvores. Cada sub-árvore é então reconectada através de uma adaptação do algoritmo de Prim. Para garantir que cada filho tenha suficiente carga genética do pai, se a remoção do arco de maior custo gerar uma sub-árvore com um número de vértices menor que o mínimo pré-estabelecido, outro arco é escolhido. Esse procedimento é repetido até que essa restrição seja satisfeita. 3.6 Reconexão de Caminhos No algoritmo genético desenvolvido nesse trabalho utiliza-se a Reconexão de Caminhos do tipo mista a partir de uma geração inicial g. Se for encontrada uma solução melhor que a incumbente, então essa solução é adicionada a população de cromossomos. A geração inicial g, também serve como incremento para sua próxima execução, ou seja, a Reconexão de Caminhos é executada sempre de g em g gerações e a partir da geração g. 5

3.7 Sobrevivência A sobrevivência a formação das gerações futuras é um importante passo do algoritmo genético. Se o índice de sobrevivência for muito alto, somente os mais aptos são selecionados para sobreviver, nesse caso, é possível que os mais aptos irão dominar o processo de busca levando a solução para um ótimo local. Por outro lado, se o índice de sobrevivência for muito baixo, muitos indivíduos com fitness baixo sobreviverão, podendo fazer com que o algoritmo percorra todo o espaço de soluções (GOLDEN et al., 2005). A abordagem de sobrevivência utilizada nesse trabalho é a similar às utilizadas no trabalho de Golden et al. (2005) e no trabalho de Daniel e Rajendran (2005), onde um número de cromossomos é selecionado pelo melhor fitness e os restantes são selecionados por critérios probabilísticos e pelo fitness, conforme seção 3.3. 3.7 Algoritmo passo-a-passo Passo 1: Inicializar o número de gerações, alfa (taxa de crossover), gama (taxa de mutação), delta (taxa de busca local), beta (taxa de tree separation) e a geração inicial do path relinking; Passo 2: Gerar a população inicial; Passo 3: Gerar alfa descentes por crossover; Passo 4: Gerar gama descentes por mutação; Passo 5: Gerar delta descentes por busca local; Passo 6: Gerar beta descentes por tree sepation; Passo 7: Executar path relinking, ser for o caso; Passo 8: Selecionar cromossomos; Passo 9: Se critério de parada atingido, FIM, caso contrário voltar ao passo 3. Há três tipos de critérios de parada que são utilizados no algoritmo: quando atingir o número máximo de gerações estipulado, quando a solução ótima encontrada não mudar por 500 gerações ou quanto a melhor solução para uma da instância for atingida. 4. Resultados O algoritmo genético apresentado na seção anterior foi desenvolvido na Linguagem de Programa Java e os testes foram realizados num computador Pentium IV 3.06 MHz com 512 de memória principal. As instancias selecionadas para testes são semelhantes àquelas utilizadas por Ferreira et al. (2006), Feremans (2001) e Golden et al. (2005). Desse modo, pode-se utilizar tais trabalhos como referência para avaliar a qualidade das soluções geradas pelo algoritmo genético proposto nesse trabalho. Conforme pôde ser notado, a execução do algoritmo genético desenvolvido requer a configuração de uma série de parâmetros, entre os quais: taxa de mutação, crossover, tree separtion e busca local; tamanho da população inicial; número de descendentes; percentual de sobrevivência da população; geração inicial e intervalo para execução da Reconexão de Caminhos. Para determinar o valor de cada um desses parâmetros, foi realizado uma etapa inicial de calibragem dos parâmetros, através da execução do algoritmo diante de um subconjunto das instâncias selecionadas. Após essa etapa chegou-se aos seguintes parâmetros para instancias com até 100 vértices: 6

Tamanho da população inicial: 200; Número de descendentes: 100; Taxa de crossover: 0.8; Taxa de mutação: 0.4; Taxa de tree separation: 0; Taxa de busca local: 0.3; Reconexão de caminhos não necessária; Essa configuração se mostrou adequada apenas para instâncias com até 100 vértices, para instancias maiores a solução ótima foi encontrada em poucos casos. Desse modo, várias alternativas para melhorar o desempenho do algoritmo foram avaliadas, desde novas heurísticas construtivas, até alterações no próprio funcionamento do algoritmo genético (operações de reprodução, forma de seleção dos cromossomos, taxa de sobrevivência, entre outros). Porém, a alternativa que apresentou melhores resultados durante a etapa de testes foi a combinação do algoritmo genético com a Reconexão de Caminhos. Passou-se então a utilizar a Reconexão de Caminhos a cada 100 gerações (esse valor também foi determinado através de testes), além de aumentar o número de descentes para 200. Os demais parâmetros permaneceram os mesmos. Vale destacar que esta última configuração apresentou melhores resultados (tanto em relação a velocidade computacional quanto em relação ao número de gerações para encontrar a solução ótima), quando a população inicial foi gerada de apenas de forma aleatória, sem a utilização das demais heurísticas construtivas descritas na seção 3.2. Uma das justificativas para essa melhora de desempenho se deve ao fato de que a Reconexão de Caminhos apresentou melhores resultados quando as soluções eram mais diferentes entre si. A operação de mutação tree separation e o operador de crossover single-point foram testados, porém, durante a etapa de calibragem dos parâmetros, não apresentaram resultados que justificassem sua utilização na versão final do algoritmo. Portanto, a etapa inicial de calibragem do algoritmo genético, embora bastante exaustiva, foi de grande importância para ajustar o algoritmo implementado para o problema da GMST. Além de selecionar as melhores taxas para as operações de mutação e crossover, foi possível simplificar o algoritmo genético, torná-lo mais rápido computacionalmente e deixá-lo com maior grau de convergência em relação a solução ótima, conforme demonstram os resultados exibidos na Tabela 1, os tempos são dados em segundos. Instância Ótimo N o médio de gerações Tempo médio de execução* V1 V2 V1 V2 27europ47 13085 617,60 101,00 71,09 16,92 15spain47 2393 147,60 99,60 12,12 7,09 10att48 10923 1.116,60 141,00 21,20 7,79 10gr48 1282 1.753,00 161,00 27,80 9,01 10hk48 4119 924,00 181,00 17,40 9,78 11eil51 132 1.347,60 121,00 23,84 7,34 12brazil58 9206 1.854,20 481,00 43,02 13,63 14st70 233 2.231,00 141,00 63,48 12,76 16eil76 186 1.640,40 176,00 71,46 21,07 16pr76 46514 2.700,80 261,00 96,85 29,17 20gr96 221 2.114,20 241,00 161,04 34,68 20rat99 402 3.119,40 261,00 256,96 48,26 7

Tabela 1 Comparação de tempo de execução do GA Após essa etapa inicial, cada instancia foi executada cinco vezes com a nova versão do algoritmo genético. Os resultados estão apresentados na Tabela 2. A tabela está dividida em cinco colunas, a saber: nome da instância, número de cluster, número de vértices, solução ótima conhecida para a instância, número médio de gerações para encontrar o resultado ótimo e tempo médio de execução para encontrar o valor ótimo. Instância K Vértices Ótimo Tempo Feremans Média de Gerações Tempo Médio spain47 15 985 2393 5.00 99,60 7,09 europ47 27 1042 13085 3.00 101,00 16,92 gr96 50 4463 306 68.00 141,00 116,33 gr137 35 8251 209 110.00 181,00 94,15 gr202 34 19018 135 4558.00 161,00 137,80 att48 10 1010 10923 4.00 141,00 7,79 gr48 10 1017 1282 3.00 161,00 9,01 hk48 10 995 4119 4.00 181,00 9,78 eil51 11 1158 132 5.00 121,00 7,34 brazil58 12 1464 9206 14.00 201,00 13,63 st70 14 2248 233 20.00 141,00 12,76 eil76 16 2660 186 47.00 201,00 25,36 pr76 16 2661 46514 37.00 261,00 29,17 gr96 20 4292 221 99.00 241,00 34,68 rat99 20 4609 402 83.00 261,00 48,26 kroa100 20 4727 7982 65.00 361,00 65,28 krob100 20 4716 8111 73.00 381,00 62,87 kroc100 20 4714 8041 87.00 301,00 86,48 krod100 20 4716 7643 183.00 341,00 56,42 kroe100 20 4702 8164 66.00 181,00 30,53 rd100 20 4703 2779 55.00 261,00 45,16 eil101 21 4776 204 76.00 181,00 31,98 lin105 21 5130 6728 109.00 241,00 45,94 pr107 22 5441 20398 244.00 426,00 151,95 gr120 24 6820 2255 114.00 341,00 82,00 pr124 25 7315 30174 753.00 801,00 201,88 bier127 26 7191 58150 908.00 861,00 256,03 pr136 28 8879 34104 406.00 681,00 224,27 gr137 28 8892 329 1518.00 601,00 227,39 pr144 29 9952 40055 861.00 965,80 371,89 kroa150 30 10809 9815 426.00 801,00 338,67 krob150 30 10807 10048 849.00 1181,00 485,54 pr152 31 11080 39109 1541.00 321,00 165,88 u159 32 12031 18723 592.00 601,00 272,77 rat195 39 18478 751 2120.00 534,33 392,87 kroa200 40 19409 11634 2607.00 1081,20 870,33 krob200 40 19430 11244 5254.00 681,00 613,32 Tabela 2 Resultados obtidos com o algoritmo genético A partir dos resultados apresentados na Tabela 2, pode-se verificar que o algoritmo genético desenvolvido nesse trabalho se mostrou bastante eficiente no que diz respeito a qualidade das soluções encontradas, uma vez que atingiu o valor ótimo para instâncias clássicas elaboradas para o problema 8

da GMST e utilizadas para avaliação de heurísticas meta-heurísticas em outros trabalhos, tais como em Ferreira et al. (2006), Feremans (2001) e Golden et al. (2005). O principal ponto do algoritmo a ser aprimorado no algoritmo genético, quando comparado a outros trabalhos, diz respeito a sua velocidade e convergência para encontrar a solução ótima. No entanto, como foi demonstrado no inicio dessa seção, novos refinamentos nos parâmetros para e execução do algoritmo podem ser feitos para melhorar o desempenho do algoritmo nesse quesito. 5. Conclusões Esse trabalho apresentou a elaboração e testes de um algoritmo genético para o problema da GMST. Por se tratar de um problema NP-Difícil e por ainda ser pouco explorado por pesquisadores da área de pesquisa operacional, principalmente no Brasil, pode-se dizer que o trabalho será bastante válido para futuros pesquisadores que venham a explorar esse tema através de algoritmos genéticos ou mesmo através de outras heurísticas e meta-heuristicas. A qualidade das soluções obtidas com o algoritmo genético para instâncias que foram geradas pela técnica de agrupamento Center Clustering é o ponto forte do trabalho desenvolvido, as quais são comparáveis àquelas obtidas em trabalhos publicados em eventos científicos da área. O algoritmo genético foi submetido a 36 instâncias clássicas para o problema da GMST e obteve a solução ótima conhecida para todas as instâncias testadas. Vale destacar que o algoritmo genético proposto em Golden et al. (2005) não encontrou a solução ótima para a instância rat195. A continuidade desse trabalho prevê uma nova etapa de testes direcionados para o refinamento do algoritmo, especialmente no ajuste dos seus parâmetros para melhorar sua velocidade de processamento. Além disso, pretende-se submeter o algoritmo às outras instâncias disponíveis para o problema da GMST, especialmente aquelas geradas pela técnica de agrupamento Grid Clustering. Referências ANDRADE, M., R. Q., Um GRASP com Reconexão de Caminhos para a Solução do Problema da Maximização da Diversidade. Niterói: Universidade Federal Fluminense, 2004. (Dissertação de Mestrado). DANIEL, J. S. R.; RAJENDRAN, C., A simulation-based genetic algorithm for inventory optimization in a serial supply chain. International Transactions in Operational Research, v. 12, p.101-127, 2005. DROR, M., HAOUARI, M., CHAOUACHI, J., Generalized spanning trees. European Journal of Operational Research, v. 120, p. 583-592, 2000. FEREMANS, C., Generalized Spanning Trees and Extensions. Brussels: Université Libre de Bruxelles, Institut de Statistique et de Recherche Opérationnelle, 2001. (Tese de Doutorado). FEREMANS, C., LABBÉ, M., LAPORTE, G., On Generalized Minimum Spanning Trees, European Journal of Operational Research, v. 134, p. 457-458, 2001. FERREIRA, C. M. S., OCHI, L. S., MACAMBIRA, E. L., Grasp com memória adaptativa para o problema da árvore de cobertura mínima generalizado. In: Simpósio Brasileiro de Pesquisa Operacional, 2006, Goiânia. Anais... Goiânia, 2006. GLOVER, F., LAGUNA, M. e MARTÍ, R, Fundamentals of scatter search and path relinking, Control and Cybernetics, v. 29, pp. 653-684, 2000. GOLDEN, B., RAGHAVAN, S., STANOJEVIC, D., Heuristic Search for the Generalized Minimum Spanning Tree Problem. INFORMS Journal on Computing, v. 17, n. 3, p. 290 304, 2005. 9

HAOUARI, M., CHAOUACHI, J. S., Upper and lower bounding strategies for the generalized minimum spanning tree problem. European Journal of Operational Research, v. 171, p. 632-647, 2006. MYUNG, Y.S., LEE, C.H.,, TCHA, D. W., On the Generalized Minimum Spanning Tree Problem, Networks, v. 26, p. 231-241, 1995. 10