Soluções Heurísticas Simples e Híbrida para o Problema do Caixeiro Viajante: Um Estudo Comparativo



Documentos relacionados
DISCIPLINA: Métodos Heurísticos

Algoritmos Genéticos

APLICAÇÃO DE MÉTODOS HEURÍSTICOS EM PROBLEMA DE ROTEIRIZAÇÃO DE VEICULOS

Projeto e Análise de Algoritmos Projeto de Algoritmos Heurísticas e Algoritmos Aproximados

Técnicas para Programação Inteira e Aplicações em Problemas de Roteamento de Veículos 14

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves

Complemento IV Introdução aos Algoritmos Genéticos

Disciplina de Projetos e Análise de Algoritmos. Aula 1 - Apresentação aos Algoritmos Computacionais

Inteligência Computacional Aplicada a Engenharia de Software

ALGORITMOS GENÉTICOS: UMA VISÃO EXPLANATÓRIA

SLAG - Resolvendo o Problema do Caixeiro Viajante Utilizando Algoritmos Genéticos

INF 1771 Inteligência Artificial

Otimização de Funções Não Lineares por Meio do Algoritmo Árvore da Montanha

Conceitos Básicos de Algoritmos Genéticos: Teoria e Prática

2 Problema das p-medianas

A Otimização Colônia de Formigas

Meta-heurísticas. Métodos Heurísticos José António Oliveira meta-heurísticas

BUSCA LOCAL ITERADA (ILS ITERATED LOCAL SEARCH)

A SOLUTION OF N-QUEENS PROBLEM BY GENETIC ALGORITHMS

Uma Heurística para o Problema de Redução de Padrões de Corte

Introdução às Redes Neurais Artificiais

Resolução do Problema de Roteamento de Veículos com Frota Heterogênea via GRASP e Busca Tabu.

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Otimização do Planejamento de Cargas de Dados utilizando Algoritmos Genéticos

- Computação Evolutiva -

Inteligência de Enxame: ACO

UMA HEURÍSTICA GRASP PARA O PROBLEMA ESTENDIDO DE SEQUENCIAMENTO DE CARROS

PLANEJAMENTO DA MANUFATURA

Minicurso SBSE 2012:

Análise e Complexidade de Algoritmos

DEFINIÇÃO DE PARÂMETROS NA UTILIZAÇÃO DE METAHEURÍSTICAS PARA A PROGRAMAÇÃO DE HORÁRIOS ESCOLARES

Um Esquema de Aproximação Eficiente para o Problema do Bin Packing Unidimensional

4 Implementação e Resultados Experimentais

5COP096 TeoriadaComputação

IA Colônia de Formigas. Prof. Ricardo Britto DIE-UFPI

Uma Heurística Gulosa para o Problema de Bin Packing Bidimensional

Tony Ítalo Abreu Santiago

Aplicação de algoritmos genéticos para ajuste de modelos regressores não lineares com grande número de parâmetros 1. Introdução

FUNDAÇÃO DE APOIO AO ENSINO TÉCNICO DO ESTADO DO RIO DE JANEIRO FAETERJ Petrópolis Área de Extensão PLANO DE CURSO

Projeto e Análise de Algoritmos Projeto de Algoritmos Introdução. Prof. Humberto Brandão humberto@dcc.ufmg.br

Introdução aos Conceitos de Problemas de Transporte e Roteamento de Veículos

Orientação a Objetos

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

Classificação: Determinístico

ALGORITMOS GENÉTICOS APLICADOS A MAPEAMENTO FÍSICO DE DNA

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

Roteiro 2: (Planilhas Eletrônicas) - Função procv / manipulação de formulários

SERVIÇO DE ANÁLISE DE REDES DE TELECOMUNICAÇÕES APLICABILIDADE PARA CALL-CENTERS VISÃO DA EMPRESA

Simulação Transiente

ISO/IEC 12207: Gerência de Configuração

Utilização da metaheurística GRASP para resolução do problema de construção de trilhos de aeronaves

Manejo Florestal Sustentável: Dificuldade Computacional e Otimização de Processos

SISTEMAS DE INFORMAÇÃO GERENCIAIS

Dadas a base e a altura de um triangulo, determinar sua área.

Técnicas metaheurísticas aplicadas na otimização de parâmetros em um modelo probabilístico de gestão de estoques

Problema 8-Puzzle: Análise da solução usando Backtracking e Algoritmos Genéticos

ALGORITMO HÍBRIDO PARA SISTEMAS DE RECOMENDAÇÃO UTILIZANDO FILTRAGEM COLABORATIVA E ALGORITMO GENÉTICO

6 Construção de Cenários

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas

Projeto e Análise de Algoritmos Projeto de Algoritmos Tentativa e Erro. Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br

Verificação de Impressões Digitais usando Algoritmos Genéticos

4 Avaliação Econômica

Apostila de Fundamentos de Programação I. Prof.: André Luiz Montevecchi

Balanceamento de Carga

Sistema de Entrega para Suporte Varejista Utilizando a Metaheurística GRASP

APLICAÇÃO DA METAHEURÍSTICA COLÔNIA DE FORMIGAS AO PROBLEMA DE ROTEAMENTO DE VEÍCULOS

2. Objetivos do Sistema

Simulação da Configuração de uma Rede de Sensores Sem Fio para Cobertura de uma Região

ESTUDO PRELIMINAR SOBRE A ESCALABILIDADE DE UM ALGORITMO GENÉTICO PARALELIZADO COM OPENMP. Mateus Fontoura Gomes da Rosa Márcia C.

O Problema do Troco Principio da Casa dos Pombos. > Princípios de Contagem e Enumeração Computacional 0/48

2 Diagrama de Caso de Uso

Disciplina: Introdução à Informática Profª Érica Barcelos

5 Mecanismo de seleção de componentes

Aprendizagem de Máquina

Extração de Árvores de Decisão com a Ferramenta de Data Mining Weka

PLANO DE ENSINO. ATIVIDADE SEG TER QUA QUI SEX Aulas Atendimento Preparação de aula

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

Arquitetura de Rede de Computadores

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

)HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu

Processos de Desenvolvimento de Software

Sobre o Professor Dr. Sylvio Barbon Junior

3 ALGORITMOS GENÉTICOS : CONCEITOS BÁSICOS E EXTENSÕES VINCULADAS AO PROBLEMA DE MINIMIZAÇÃO DE PERDAS

PROBLEMA DE TRANSPORTE: MODELO E MÉTODO DE SOLUÇÃO

QFD: Quality Function Deployment QFD: CASA DA QUALIDADE - PASSO A PASSO

Tabela de roteamento

Elbio Renato Torres Abib. Escalonamento de Tarefas Divisíveis em Redes Estrela MESTRADO. Informática DEPARTAMENTO DE INFORMÁTICA

Casos de teste semânticos. Casos de teste valorados. Determinar resultados esperados. Gerar script de teste automatizado.

UM ALGORITMO BASEADO EM ITERATED LOCAL SEARCH PARA O PROBLEMA DE ROTEAMENTO DE VEÍCULOS PERIÓDICO

Busca Estocástica Baseada em Planejamento para Maximizar Metas em Jogos de RTS

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

UNIDADE 4. Introdução à Metodologia de Desenvolvimento de Sistemas

ADM041 / EPR806 Sistemas de Informação

1.1. Organização de um Sistema Computacional

Tópicos Especiais em Informática

Persistência e Banco de Dados em Jogos Digitais

Transcrição:

Soluções Heurísticas Simples e Híbrida para o Problema do Caixeiro Viajante: Um Estudo Comparativo Marco Antonio Barbosa 1, Renata Neuland 2, Rodrigo Antoniazzi 3 1 Departamento de Informática. Universidade Tecnológica Federal do Paraná (UTFPR) Via do Conhecimento, km 1-85.503-390 - Pato Branco, PR Brazil 2 Instituto de Informática Universidade Federal do Rio Grande do Sul (UFRGS) Caixa Postal 15.064 91.501-970 Porto Alegre RS Brazil 3 Ciência da Computação. Universidade de Cruz Alta (UNICRUZ) Parada Benito 98.020-290 - Cruz Alta, RS - Brazil mbarbosa@utfpr.edu.br, rcneuland@inf.ufrgs.br, rodrigoantoniazzi@yahoo.com.br Abstract. The Traveling Salesman Problem (TSP) historically has been studied due to its relation to several problems of logistics and routing of great practical interest for different fields. As the TSP belongs to the class of NP- Hard problems, the exact solution obtained by a brute force algorithm, it is obtained only in non polynomial time. In this work two metaheuristics: GRASP and Genetic Algorithms are used to solve the Symmetric Traveling Salesman Problem and both are confronted with a hybrid metaheuristic. Resumo. O Problema do Caixeiro Viajante (PCV) é historicamente estudado por se relacionar a diversos problemas de logística e roteamento, de grande interesse prático para os mais diversos setores. Por pertencer à classe de problemas NP-Difíceis sua solução exata, dada por algoritmos de força bruta, somente é obtida em tempo não polinomial. Neste trabalho duas metaheurísticas simples: GRASP e Algoritmos Genéticos são utilizadas na solução do Problema do Caixeiro Viajante Simétrico e ambas são confrontadas com uma meta-heurística híbrida. 1. Introdução Muitos problemas, com grande interesse prático, podem demandar um tempo de execução muito elevado quando se busca uma solução ótima. Em muitos casos, a melhor solução sequer será encontrada em função do elevado tempo de processamento necessário para encontrá-la. Entretanto, muitos destes problemas são de grande interesse prático e não podem ser desconsiderados pelo fato de não se conseguir encontrar a solução ótima [Cormen 2001]. A dificuldade de se obter uma solução ótima para estes problemas (ou seja, encontrar dentro do conjunto de soluções possíveis aquela solução que é a melhor), se dá em função do seu espaço de soluções possíveis ser exponencial. Tal problema caracteriza-se como um problema de otimização combinatória e, dentre as categorias de problemas conhecidas: decisão, localização e otimização, caracteriza-se como a categoria mais difícil de encontrar uma solução [Garey e Johnson 1979].

O Problema do Caixeiro Viajante (PCV) [Lawer 1995] é um dos mais antigos problemas de otimização inserido na classe dos problemas NP-Difíceis, os quais [Toscani e Veloso 2002] definem como aqueles que demandam um tempo de execução de ordem fatorial para que sejam resolvidos de forma exata por meio de algoritmos determinísticos. Os autores ressaltam que para uma dada entrada de tamanho n suficientemente grande o tempo de execução para a resolução desse problema torna-se proibitivo, não sendo possível encontrar uma solução de forma satisfatória em tempo aceitável. Uma alternativa de se buscar uma solução viável em tempo polinomial para problemas intratáveis são os métodos heurísticos [Glover e Kochenberger 2002]. Estes métodos atualmente são mais comumente denominados meta-heurísticas. Tais métodos caracterizam-se por fornecer uma solução viável em um tempo aceitável, porém, sem dar quaisquer garantias da qualidade da resposta obtida. São exemplos de metaheurísticas GRASP, Simulated Annealing, Busca Tabu, Colônia de Formigas, Algoritmos Genéticos, dentre outras. Em [Glover e Kochenberger 2002], [Blum e Roli 2003], [Goldbarg e Luna 2005] e [Linden 2008] podem-se encontrar mais exemplos de meta-heurísticas. Este artigo reporta uma série de experimentos computacionais realizados como tentativa de solução ao Problema do Caixeiro Viajante Simétrico. Foram utilizadas as meta-heurísticas GRASP e Algoritmos Genéticos (AG). Uma terceira meta-heurística implementada consiste em uma meta-heurística híbrida que constitui-se na união da meta-heurísticas GRASP e AG. Na heurística híbrida o GRASP é utilizado para gerar uma solução viável e o AG é utilizado como uma heurística de refinamento sobre esta solução viável, na tentativa de fazer um melhoramento desta solução. O objetivo destes experimentos é traçar uma relação de custo x benefício, ou seja, analisar se a qualidade dos resultados obtidos pela meta-heurística híbrida justifica a sua implementação ou soluções mais simples, como as meta-heurísticas utilizadas separadamente, são tão eficientes quanto a híbrida não justificando, portanto, apostar em uma solução algorítmica de implementação mais complexa e elaborada. Para a obtenção desses resultados, as meta-heurísticas foram implementadas e testes foram executados a fim de criar um parecer avaliativo sobre o desempenho de cada meta-heurística separadamente e da união de ambas (meta-heurística híbrida) sobre as instâncias escolhidas do PCV. As instâncias utilizadas são encontradas na biblioteca TSPLIB. O artigo está estruturado como segue. Na Seção 2 encontram-se conceitos básicos sobre o PCV e as meta-heurísticas GRASP e AG. A Seção 3 detalha a implementação dos métodos. Na Seção 4 apresentam-se os testes, resultados e as respectivas análises. Por fim, na Seção 5 são apresentadas algumas conclusões e direções futuras de trabalho. 2. Conceitos Básicos 2.1. O Problema do Caixeiro Viajante (PCV) O Problema do Caixeiro Viajante tem uma formulação bastante simples: o caixeiro viajante deve percorrer cada cidade em seu território exatamente uma única vez e

retornar a cidade de origem tendo percorrido todo o espaço de cidades do território cobrindo a menor distância [Michalewicz e Fogel 2004]. O PCV é definido em [Papadimitriou 1994] da seguinte forma: se tem n cidades 1,...,n e uma distância inteira não negativa dist(i,j) entre duas cidades i e j, considerando-se que i e j sejam todas as cidades possíveis de serem ligadas umas com as outras. Se a distância de i a j for igual à distância de j até i, ou seja, dist(i,j) = dist(j,i) o problema caracteriza-se como o Problema do Caixeiro Viajante Simétrico. A Figura 1 ilustra um exemplo do problema para uma instância com 20 cidades. Embora as distâncias não estejam rotuladas na figura assume-se que as distâncias são simétricas. Uma variação a este problema é assumir que as distâncias são assimétricas, isto é dist(i,j) dist(j,i). Estas duas classes de problemas apresentam diferentes obstáculos na busca por caminhos de custo mínimo. O espaço de busca para o PCV pode ser visto como um conjunto de permutações das n cidades. Cada permutação das n cidades caracteriza-se como uma lista ordenada que define a sequência das cidades a serem visitadas. A solução ótima é uma permutação que corresponda a um tour (ou passeio) de caminho mínimo. Cada tour pode ser representado de 2n maneiras diferentes (para um modelo simétrico). Considerando-se que há n! formas de permutar n números, o tamanho do espaço de busca é então S = n!/(2n) = (n 1)!/2. Para se avaliar a taxa de crescimento desta expressão, para um PCV de 10 cidades há 181.000 caminhos possíveis, para um PCV de 20 cidades há aproximadamente cerca de 10.000.000.000.000.000 caminhos possíveis [Michalewicz e Fogel 2004]. 2.2. A Meta-heurística GRASP Figura 1. Instância do PCV para 20 cidades O Procedimento de busca adaptativa gulosa e randômica, mais comumente chamada de meta-heurística GRASP [Feo e Resende 1995], atua como um método guloso aprimorado. O método utiliza a aleatoriedade como tentativa de fuga de soluções ótimas locais. O método armazena a melhor solução encontrada e continua gerando novas soluções até que uma condição de parada seja satisfeita, durante as iterações a melhor

solução geral passa a ser a solução final. O método consiste de duas fases: uma fase de construção e uma fase de busca local. Na fase de construção, a solução é construída elemento a elemento de forma iterativa. A cada iteração, baseando-se no último elemento escolhido, é criada uma lista dos possíveis candidatos a fazer parte dessa solução, essa lista é chamada de lista restrita de candidatos (LRC). Essa lista é composta por uma porcentagem, escolhida pelo desenvolvedor, das melhores opções a serem escolhidas naquele momento, a cada iteração a lista de candidatos deve ser refeita. Os critérios que definem quais candidatos podem fazer parte LRC podem mudar a cada iteração da fase de construção, por isso essa meta-heurística é dita adaptativa. Ao contrário do método guloso tradicional, que escolheria o ótimo local a cada iteração, no GRASP o próximo elemento da solução é escolhido de forma aleatória dentre as opções da LRC. Na fase de busca local, soluções da vizinhança são comparadas com o objetivo de melhorar ao máximo a solução final. O algoritmo abstrato abaixo ilustra de forma sucinta o funcionamento da metaheurística GRASP. Procedimento: GRASP(P,i) Entrada: uma instância do problema e o número de iterações Saída: uma solução (sub-ótima) 01. enquanto (critério de parada não for satisfeito) faça 02. FaseConstrução(solução); 03. BuscaLocal(solução, N(solução)); 04. AtualizaSolução(MelhorSoluçãoEncontrada, solução); 05. fim_enquanto 06. S MelhorSoluçãoEncontrada; 07. retorne(s); 08. fim. Algoritmo 1. Método GRASP 2.3. A Meta-heurística Algoritmos Genéticos Os Algoritmos Genéticos (AG) constituem-se em uma meta-heurística que representa uma metáfora ao processo de evolução natural da biologia. Inicialmente apresentado por [Holland 1975]. Os AG são utilizados atualmente na solução de problemas nas mais diversas áreas, tais como a biologia, engenharias, matemática aplicada, ciência da computação, dentre outras. Nos Algoritmos Genéticos cada indivíduo (cromossomo) está associado a uma solução do problema e cada gene está associado a uma componente da solução. Essa meta-heurística usa um método semelhante à evolução natural das espécies onde os indivíduos mais aptos sobrevivem. A adaptação ocorre por reprodução. Os indivíduos modificam-se e adaptam-se ao meio conforme vão se reproduzindo. Em uma população, alguns organismos possuem características genéticas mais favoráveis à sobrevivência. São indivíduos mais aptos que tendem a ter filhos ainda mais aptos, melhorando, desta forma, a população. Para detalhamento desta meta-heurística, referencia-se [Goldbarg e Luna 2005], [Linden 2008] e [Goldberg 1989].

Nos algoritmos genéticos a população inicial é geralmente escolhida de forma aleatória, também chamada de população no tempo 0 (t 0 ). Essa população passa pelo processo de reprodução gerando assim a população no tempo 1 (t 1 ). Esse procedimento de reprodução é a principal etapa dos AGs. Esta etapa caracteriza-se como um processo iterativo onde os indivíduos mais aptos são selecionados como pais, produzindo uma nova geração de indivíduos (filhos). A nova população será classificada e avaliada. Se os novos indivíduos forem considerados aptos poderão se reproduzir e continuar o ciclo. O algoritmo abstrato a seguir ilustra de forma esquemática o princípio de funcionamento dos Algoritmos Genéticos. Procedimento: Algoritmo Genético 01. t 0; 02. gere a população inicial P(t); 03. avalie P(t); 04. enquanto (os critérios de parada não estiverem satisfeitos) faça 05. t t+1; 06. gere P(t) a partir de P(t-1); 07. avalie P(t); 08. defina a população sobrevivente; 09. fim_enquanto 10. fim. Algoritmo 2. Método Algoritmos Genéticos 3. Implementação das Meta-Heurísticas Para a realização dos experimentos reportados neste artigo foram implementados três algoritmos na linguagem Java. Um algoritmo para a meta-heurística GRASP, um algoritmo para a meta-heurística AG e um algoritmo para a meta-heurística híbrida. Para testar as meta-heurísticas foram utilizadas as instâncias: gr17, gr21, gr24, gr48, gr120, si175, com número de nós (cidades) 17, 21, 24, 48, 120 e 175 respectivamente. Estas instâncias são encontradas na biblioteca TSPLIB 1. 3.1. Algoritmo GRASP A meta-heurística GRASP foi implementada segundo os passos a seguir: Passo 1: Seleciona-se o primeiro candidato a fazer parte da solução; Passo 2: Com base no último candidato agregado à solução uma lista de candidatos é criada, de acordo com o percentual pré-definido na configuração inicial do algoritmo; Passo 3: Um candidato é selecionado da lista de forma aleatória e adicionado à solução; Passo 4: Verifica-se o critério de parada. Caso o critério não seja satisfeito o algoritmo repete os passos a partir do passo 2; Passo 5: Busca-se dentre as soluções encontradas aquela que melhor se apresenta como solução para o problema. Para a criação da lista de candidatos é feita uma busca sobre os caminhos ainda não visitados. Os candidatos são dispostos em ordem crescente em relação à distância 1 disponível em http://comopt.ifi.uni-heidelberg.de/software/tsplib95/

entre eles e o último candidato agregado à solução. De acordo com o percentual definido na configuração inicial, os n primeiros candidatos são dispostos na lista de candidatos. Desta lista, um candidato é escolhido de forma aleatória e adicionado à solução. Para cada candidato adicionado à solução a lista deve ser refeita. A Figura 2 apresenta a interface da solução GRASP implementada neste trabalho. Para a utilização do método o usuário necessita definir alguns parâmetros de configuração. O usuário deve definir a instância a ser avaliada, o nó a ser utilizado como ponto de início da tour ou definir que o ponto de início seja obtido de forma aleatória. O usuário define o número de iterações do método (que servirá como critério de parada do método) e, por fim, o usuário deverá definir o percentual da lista de candidatos que será considerada a cada iteração. Os resultados fornecidos pelo sistema são: a melhor solução encontrada, o peso dessa solução, o caminho percorrido e o tempo de início e término da execução do método. Figura 2. Interface do método GRASP 3.2. Algoritmo Genético A Figura 3 apresenta a interface para o método AG. Para a configuração inicial do método o usuário deve: definir a instância a ser utilizada, os percentuais de mutação, cruzamento e elitismo, bem como o tamanho da população inicial e o número de iterações (usado como critério de parada). Da mesma forma que no método GRASP são apresentados como resultado a melhor solução encontrada, o peso dessa solução, o caminho percorrido e os tempos de início e término de execução do método. Figura 3. Interface do método Algoritmos Genéticos A meta-heurística AG foi implementada de acordo com a sequência de passos listadas a seguir:

Passo 1: Criação de cromossomos feita de forma aleatória (população inicial); Passo 2: Avaliar os cromossomos da população; Passo 3: Executar a função de elitismo; Passo 4: Executar a função de crossover/cruzamento (1 ponto); Passo 5: Executar a função de mutação (2-troca); Passo 6: Unir os cromossomos criados em uma nova população; Passo 7: Avaliar o critério de parada. Caso o critério de parada não seja satisfeito, repetir os passos a partir do passo 2. A função de avaliação dos cromossomos da população caracteriza-se como a soma das distâncias entre os genes que compõe o cromossomo. A função de elitismo funciona como um repositório de bons indivíduos. A cada população criada, um percentual pré-determinado (geralmente 1%) dos indivíduos que a compõe, são escolhidos através de elitismo. O elitismo caracteriza-se por uma lista composta pelos melhores indivíduos gerados por todas as populações, fazendo com que os melhores indivíduos nunca se percam completamente. O uso do elitismo em taxas muito altas pode acarretar uma convergência acelerada sobre uma solução. A função de crossover (ou também denominada de função de cruzamento) é usada nesta implementação com 1 ponto. Isso significa que os cromossomos pais são divididos em um único ponto e os filhos são originados através da união das partes de dois cromossomos diferentes. A escolha dos pais é feita de forma aleatória. Os indivíduos que passam pelo processo de mutação sofrem uma troca entre genes. Dois genes são escolhidos aleatoriamente e trocados de posição, um pelo outro. 3.3. A Meta-heurística Híbrida A meta-heurística híbrida foi construída a partir da união dos algoritmos GRASP e AG. Na abordagem híbrida, o GRASP é utilizado para a obtenção da população inicial e o AG é responsável pelo refinamento (melhoria) das soluções encontradas. O algoritmo híbrido é descrito como: Passo 1: Seleciona-se o primeiro candidato a fazer parte da solução; Passo 2: Com base no último candidato agregado à solução, uma lista de candidatos é criada de acordo com o percentual pré-definido na configuração inicial do método. Neste trabalho optou-se por utilizar 30% como valor padrão; Passo 3: Um candidato é selecionado da lista de forma aleatória e agregado à solução; Passo 4: verifica se a solução está completa, caso não esteja repete-se a partir do passo 2. Passo 5: Verifica-se se já foram criadas soluções suficientes para representar a população inicial. Caso o critério não seja satisfeito o algoritmo repete os passos a partir do passo 1; Passo 7: Avaliar os cromossomos da atual população. A avaliação foi feita de acordo com o valor dos caminhos que cada cromossomo representa; Passo 8: Executar a função de elitismo. Neste momento da execução um percentual, neste caso 1%, da população que obteve uma avaliação melhor no passo anterior, é preservada para a próxima população;

Passo 9: Executar a função de crossover/cruzamento. Nesta implementação o crossover utilizado foi o de 1 ponto. Os dois cromossomos escolhidos como pais são divididos, uma única vez, ao meio para formar dois filhos. Apenas parte da população passa por este passo, sendo que fica a critério do usuário escolher o percentual da população a ser selecionada; Passo 10: Executar a função de mutação. O método de mutação utilizado é conhecido como 2-troca. Neste caso, dois genes do cromossomo são escolhidos e trocam de lugares. Assim como no passo 8 apenas parte da população passa por este processo, sendo que fica a critério do usuário escolher um percentual; Passo 11: Unir os cromossomos criados e/ou transformados no decorrer dos passos anteriormente descritos, em uma nova população; Passo 12: Avaliar o critério de parada. Caso o critério de parada não seja satisfeito, repetir os passos a partir do passo 7. Passo 13: Busca-se dentre as soluções encontradas aquela que melhor se encaixa como solução para o problema. 4. Experimentos e Resultados Os experimentos realizados neste trabalho foram implementados em um computador dual core 2.0 GHz, com 4Gb de memória RAM. Cada parametrização foi testada com 100 execuções de cada algoritmo. O gráfico da Figura 4 representa os melhores resultados obtidos para cada instância testada. 41114 41169 28309 27799 21407 14974 5559 4541 56365046 2565 2085 2707 2707 2085 2146 2085 2707 1290 1289 1272 12347 11552 6942 gr17 gr21 gr24 gr48 gr120 si175 GRASP AG Híbrida melhor Figura 4. Gráfico de resultados

Após observar os resultados dos testes pode-se construir um parecer avaliativo sobre os métodos testados. A Tabela 1 representa esse parecer de forma mais objetiva. Tabela 1. Conclusões sobre os testes GRASP AG Híbrido Complexidade de implementação Pouca Média alta Melhoria de soluções Pouca Alta Alta Tempo de execução Baixo Alto Alto Sobre o quesito complexidade de implementação, o método GRASP foi o que apresentou menor complexidade uma vez que é o método de codificação mais simplificada. O AG tem uma complexidade mais alta na implementação, em razão de ser um método composto por vários passos característicos, que representam metáforas de situações relacionadas à evolução das espécies. Em relação à melhoria de soluções, todos os métodos apresentaram soluções viáveis em tempo aceitável, entretanto o GRASP teve uma melhoria menos significativa em relação aos outros métodos testados. Comparando os métodos em relação a tempo de execução, o GRASP obteve maior sucesso neste quesito. Sendo que apresenta resultados em tempos significativamente melhores que os outros métodos testados. Em suma, a escolha de qual meta-heurística utilizar vai depender quase que exclusivamente do tipo de problema a resolver. Caso para um dado problema o tempo de resposta seja prioridade sem importar quão boa seja a qualidade solução obtida, dos métodos testados, o GRASP é a melhor opção. Caso contrário, se a qualidade da solução é mais importante que o tempo de resposta e complexidade na implementação do método, os métodos AG e híbrido são recomendados. Porém, nota-se que a proximidade das respostas entre os métodos AG e híbrido indicam que não se justifica a hibridização destas duas meta-heurísticas. 5. Conclusão e Trabalhos Futuros Muitos problemas práticos, encontrados no cotidiano possuem solução computacional de tempo exponencial, ou seja, demandam grande tempo de processamento para entrada de dados suficientemente grandes. Tais problemas são conhecidos como problemas de otimização. Um importante problema computacional encontrado nesta categoria é o Problema do Caixeiro Viajante. Este artigo reporta experimentos computacionais aplicados à solução do Problema do Caixeiro Viajante. Foram implementados duas meta-heurísticas simples: GRASP e Algoritmos Genéticos e uma terceira meta-heurística híbrida que caracterizase pela união de ambas. Os experimentos realizados visaram traçar uma relação de custo x benefício entre a complexidade de implementação dos métodos, o tempo de execução dos métodos e a qualidade das soluções obtidas. Uma análise sucinta aponta que se o objetivo é buscar uma solução rápida, independente da qualidade desta solução a meta-heurística é bem indicada. Por outro lado, se o interesse é na qualidade da resposta pode-se observar que a meta-heurística Algoritmos Genéticos é a mais indicada. Como conclusão pode-se observar que a

hibridização destas heurísticas não é indicada por não se obter ganho na qualidade das soluções e por corresponder a maior complexidade de implementação. Como trabalho futuro o objetivo é investigar a qualidade da solução obtida pelo Algoritmo Genético modificado, conforme apresentado em [Kanoh 1996] conhecido como Algoritmos Genéticos com infecção viral. Referências Blum, C. Roli, A. Metaheuristics in Combinatorial Optimazation: Overview and Conceptual Comparison. ACM Computing Surveys, Vol. 35, Set 2003. Cormen, Thomas H. et al. Introduction to Algorithms. McGraw-Hilll. New York, 2001. Feo, T.A.; Resende, M.G.C. Greedy randomized adaptive search procedures. Journal of Global Optmization. 6, 109-133, 1995. Garey, M. R. and Johnson, D. S. Computers and Intractability A Guide to the Theory of NP-Completeness. Series of Books in the Mathematical Sciences, 1979. Glover, F and Kochenberger, G. Handbook of Metaheuristics. International Series in Operations Research & Management Science, vol. 57. Kluwer Academic Publishers, Norwell, MA. 2002. Goldberg, D.E. Genetic Algorithms in Search, Optmization and Machine Learning. Addison-Wesley, Berkeley, 1989. Goldbarg, Marco C; Luna, Henrique P. L. Otimização combinatória e programação linear: modelos e algoritmos. 2ª Ed. Rio de Janeiro: Ed. Campus, 2005. Holland, J.H., Adaptation in Natural and Artificial Systems. Ann. Arbor: University of Michigan Press, 1975. Kanoh, H.; Hasegawa, K.; Kato, N. Solving Constraint Satisfaction Problems by a Genetic Algorithm Adopting Viral Infection. In: INTERNATIONAL JOINT SYMPOSIA ON INTELLIGENCE AND SYSTEMS, 1996. Proceedings. Washington: IEEE Computer Society, 1996, p.67-73. Lawler, E. L. et al. The Traveling Salesman Problem - A Guided Tour of Combinatorial Otmization. [S.l.]: John Wiley and Sons, 1995. Linden, R. Algoritmos Genéticos. 2. ed. Rio de Janeiro: Brasport, 2008. v. 1. 428 p. Michalewicz, Zbigniew; Fogel, David. B. How to Solve It: Modern Heuristics. Second edition. Springer Verlag. Berlin, 2004. Papadimitriou, Christos M. Computational complexity. Estados Unidos da América, Addison-Wesley Publishing Company Inc., 1994. Toscani, L. V; Veloso, Paulo A. S. Complexidade de Algoritmos. Porto Alegre: Instituto de Informática da UFRGS: Editora Sagra Luzzatto, 2002.