A Comparison of Algorithms for Solving Multicomponent Optimization Problems

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

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

Métodos de pesquisa e Optimização

UMA HEURÍSTICA BUSCA TABU PARA O PROBLEMA DO MOCHILEIRO VIAJANTE

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

Algoritmos Genéticos

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

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

1. Computação Evolutiva

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

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

Algoritmo Genético: um experimento comparativo entre a execução paralela com troca de indivíduos de populações e a não paralela.

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

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

Problemas de otimização

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

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

Análise de Desempenho da Paralelização do Problema de Caixeiro Viajante

1. Computação Evolutiva

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

Algoritmos Genéticos e Evolucionários

Algoritmos Genéticos. Texto base: Stuart Russel e Peter Norving - Inteligência Artificial

Aprendizado por Reforço usando Aproximação

4 Métodos Existentes. 4.1 Algoritmo Genético

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

Algoritmos Genéticos

IN-1131 Computação Evolucionária. Aluizio Fausto Ribeiro Araújo Universidade Federal de Pernambuco Centro de Informática

UMA INTRODUÇÃO AOS ALGORITMOS GENETICOS

Fundamentos de Inteligência Artificial [5COP099]

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

4 Implementação Computacional

Um Estudo Empírico de Métodos Hiper-Heurísticos

2 Algoritmos Genéticos Heurística Premissa: Localidade Fraca Conclusões Estrutura de um Algoritmo Genético 26

Inteligência Artificial

Otimização com Algoritmos Evolutivos

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

Introdução a Algoritmos Genéticos

Sistemas de Apoio à Decisão Optimização V 2.0, V.Lobo, EN/ISEGI, 2011

1. Computação Evolutiva

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

5 VNS com Filtro e Reconexão por Caminhos

Pesquisa Operacional Aplicada à Mineração

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

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

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

3 Algoritmos Genéticos

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

Otimização por Enxame de Partículas (PSO) e Otimização por Colônias de Formigas (ASO) aplicadas ao Problema do Caixeiro Viajante (TSP)

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

Métodos modernos de pesquisa e Optimização

Otimização por Colônia de Formigas (ACO)

Otimização. Algoritmos Genéticos. Teoria da Evolução. Otimização

INF 1771 Inteligência Artificial

Aprendizado de Máquinas. Seleção de Características

3 Algoritmos Genéticos

Tópicos Especiais em Informática Fatec Indaiatuba

Aplicação da Metaheurística Algoritmos Genéticos na solução do problema das n Rainhas

Sistemas de Apoio à Decisão Optimização V 1.0, V.Lobo, EN/ISEGI, 2005

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

Um AG Baseado em Ordem para o Problema do Ladrão de Jóias com Múltiplas Restrições

Técnicas de Inteligência Artificial

Algoritmo Aproximação. Prof. Anderson Almeida Ferreira [DPV]9.2 [ZIV]9.2.2 e 9.2.3

Inteligência Artificial

Problema do vendedor: uma abordagem via algoritmos genéticos

Palestra COPPE Elétrica. Dezembro de 2010

DETERMINAÇÃO DE FUNÇÕES DE TRANSFERÊNCIA DE PROCESSOS QUÍMICOS ATRAVÉS DO MÉTODO DE EVOLUÇÃO DIFERENCIAL UTILIZANDO O SCILAB

Modelos Evolucionários e Tratamento de Incertezas

Aprimorando o Corte Peças com Forma Irregular em Chapas Retangulares

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

Caixeiro Viajante. Estruturas de Dados II. Prof. a Mariella Berger. 1. Objetivo

Tópicos Especiais em Otimização

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

Optimização Não-linear

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

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

Uma Introdução à Busca Tabu André Gomes

EVOLUÇÃO DIFERENCIAL APLICADA AO PROBLEMA DO DESPACHO ECONÔMICO ROBUSTO DE ENERGIA ELÉTRICA

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

DESENVOLVIMENTO DE UM ALGORITMO PARALELO PARA APLICAÇÃO EM CLUSTER DE COMPUTADORES

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

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

Sistemas Inteligentes if684. Germano Vasconcelos Página da Disciplina:

Algoritmo Genético. Teoria da Evolução Princípio seguido pelos AGs

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

Algoritmos Evolutivos para Otimização

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

04 Grafos: caminhos e coloração SCC0503 Algoritmos e Estruturas de Dados II

Estrutura comum dos AEs Seleção

Estruturas de Dados 2

1. Computação Evolutiva

ALGORITMO GENÉTICO PARA O PROBLEMA DO DESPACHO ECONÔMICO DE ENERGIA ELÉTRICA COM INCERTEZAS

INVESTIGANDO O PROBLEMA DA MOCHILA IRRESTRITA EM SUA VERSÃO BIDIMENSIONAL

Algoritmo Aproximado. Prof. Anderson Almeida Ferreira [DPV]9.2 [ZIV]9.2.2 e 9.2.3

Algoritmos genéticos Abordagem unificada de algoritmos evolutivos simples

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

Buscas Informadas ou Heurísticas - Parte III

Optimização Não-linear

Computação Evolucionária

3 Otimização Aplicada a Reconstituição de Acidentes

Transcrição:

A Comparison of Algorithms for Solving Multicomponent Optimization Problems D. K. S. Vieira and M. H. S. Mendes 1 Abstract Real-world problems are often composed of multiple interdependent components. In this case, benchmark problems that do not represent that interdependency are not a good choice to assess algorithm performance. In recently literature, a benchmark problem called Travelling Thief Problem (TTP) was proposed to better represent real-world multicomponent problems. TTP is a combination of two well-known problems: 0-1 Knapsack Problem and the Travelling Salesman Problem. This paper presents a comparison among three optimization approaches for solving TTP. The comparisons are performed on 60 representative small TTP instances available in the literature. Keywords Travelling Thief Problem, Genetic Algorithm, Optimization, Combinatorial Problem. P I. INTRODUÇÃO ROBLEMAS clássicos da computação foram propostos e atualmente são estudados para que se definam estratégias que obtenham uma boa solução de forma eficiente para problemas do mundo real (em que estes problemas clássicos são inspirados). Muitos desses problemas pertencem a classe NPdifícil, assim, não é possível encontrar a solução ótima em tempo polinomial. Dessa forma, a utilização de metaheurísticas é salutar, uma vez que pode encontrar boas soluções em um tempo aceitável. De acordo com Bonyadi et al. [1], problemas do mundo real geralmente possuem componentes interdependentes e estes não devem ser resolvidos separadamente. Esta correlação deve ser levada em consideração para que se possa obter uma solução adequada para o problema como um todo. Com o objetivo de melhor abranger a complexidade de um problema do mundo real, um novo problema de referência foi proposto chamado de Travelling Thief Problem (TTP) [1], que é uma junção de dois problemas muito conhecidos na computação que são o Knapsack Problem (KP) e o Travelling Salesman Problem (TSP). Várias estratégias foram propostas com o objetivo de obter soluções satisfatórias no TTP de forma eficiente. Faulkner et al. [2] apresentam uma série de algoritmos que focam em manipular a componente KP do problema com a componente TSP sendo obtida pela heurística Chained Lin-Kernighan [3]. Bonyadi et al. [4] utilizam uma abordagem co-evolucionária chamada de CoSolver em que módulos distintos são responsáveis pelos componentes do TTP e estes se comunicam e combinam soluções para obter uma solução geral aproximada do problema. Desta maneira o CoSolver tenta resolver o problema TTP trabalhando com as duas componentes (KP e TSP) simultaneamente e não sequencialmente como em [2]. Mei et al. [5] focam em instâncias de larga escala propondo estratégias de redução de complexidade para o TTP com esquemas de aproximação de fitness e aplica estas técnicas em um Algoritmo Memético (AM) que supera Busca Local Aleatória e o Algoritmo Evolucionário proposto por Polyakovskiy et al. [6]. Oliveira et al. [7] desenvolveram uma abordagem baseada em Busca-Tabu (BT) com uma busca local chamado 2-OPT que se mostrou ter um desempenho competitivo para instâncias de tamanho reduzido do TTP. Recentemente Vieira D.K.S et al. [8] propuseram um algoritmo genético chamado Multi-Component Genetic Algorithm (MCGA) que obteve excelente resultado em instâncias de tamanho médio do TTP. Este artigo apresenta a aplicação do MCGA para resolver instâncias pequenas do TTP e compara os resultados obtidos com duas abordagens existentes na literatura. O MCGA possui 4 etapas básicas em cada iteração: avaliação da solução (individual) para saber quão boa é esta solução; seleção dos indivíduos baseada no fitness dos mesmos; cruzamento dos indivíduos para criar novas soluções (filhos) baseados nas características (cromossomo) das soluções existentes (pais); perturbação das soluções por meio de algum operador de mutação que altera suas características (alguns alelos dos genes de seus cromossomos). Depois de algumas iterações o algoritmo tende a obter boas soluções para o problema em um tempo aceitável. O artigo é dividido da seguinte forma. A Seção II descreve o TTP e suas especificações que foram utilizadas neste trabalho. Na Seção III descreve-se o MCGA. A Seção IV apresenta a metodologia utilizada para os testes e avaliação dos algoritmos juntamente com os resultados obtidos nas instâncias definidas. Por fim é apresenta a conclusão e as possibilidades para trabalhos futuros na Seção V. II. TRAVELLING THIEF PROBLEM Com base em Polyakovskiy et al. [6], o TTP é definido como tendo um conjunto de cidades ={1,,} em que a distância entre cada par de cidades e é conhecida, com,. Toda a cidade exceto a primeira possui um conjunto de itens ={1,, }. Cada item existente em uma cidade é caracterizado pelo seu valor e peso. A solução candidata deve visitar todas as cidades sem repetir nenhuma e retornar para a cidade de partida. 1 D. K. S. Vieira, Universidade Federal de Minas Gerais, Belo Horizonte, MG, danielv@dcc.ufmg.br 1 M. H. S. Mendes, Universidade Federal de Viçosa, Florestal, MG, marcus.mendes@ufv.br

Itens podem ser coletados pelas cidades respeitando-se a restrição de capacidade máxima da mochila. Uma taxa de aluguel deve ser paga por cada unidade de tempo que se utiliza para finalizar o percurso. e descrevem a velocidade máxima e mínima permitida ao longo do percurso, respectivamente. Seja {0,1} uma variável binária igual a 1 caso o item fosse coletado na cidade. Sendo o peso total dos itens coletados quando se deixa a cidade. Portanto, a função objetivo para um percurso Π =(,, ), e um plano de coleta =(,, ) é definida como: (Π, ) = + em que =. O objetivo é maximizar (Π, ). A equação 1 consiste em penalizar os lucros obtidos pelos itens coletados com um valor que representa o tempo total que se leva para completar o percurso Π multiplicado pela taxa de aluguel R. A Figura 1 mostra um exemplo do TTP no qual se tem o mesmo número de itens para cada cidade assim como nas instâncias de teste fornecidas por Polyakovskiy et al. [6]. Neste caso, tem-se 2 itens para cada cidade (exceto a primeira cidade, que não possui itens) e 3 cidades ao todo. Cada item (, ) é descrito como sendo o item da cidade que possui um valor e um peso. Assumindo a capacidade máxima da mochila como sendo =10, a taxa de aluguel =1, =1 e =0.1. Logo, uma solução possível é = (0,1,0,1) e Π = (1,2,3), descrevendo que serão coletados os itens, que estão nas cidades 2 e 3, respectivamente, fazendo uma rota que partindo da cidade 1 vai para a cidade 2, depois para a 3 e por fim retornando à cidade 1. Isso resulta em (Π, ) 28.053. 1 Início I 31 (15,2) I 32 (10,1) 8 Figura 1. Exemplo do TTP. 3 2 Note que, no exemplo fornecido anteriormente, caso apenas o componente TSP do problema for considerado, todas as possibilidades possuem custos iguais uma vez que que todas as conexões entre as cidades serão utilizadas de qualquer forma. No entanto, caso leve-se em consideração o problema como um todo, é possível notar que a ordem da rota percorrida passa a influenciar no custo da solução devido à variação de tempo que 4 2 I 21 (30,5) I 22 (65,9) (1) um item é mantido na mochila. Em outras palavras, um item pesado coletado no começo do percurso influencia a velocidade por um período de tempo maior se comparado com o mesmo item coletado no final do percurso, tornando a solução mais lenta e aumentando o custo. III. MULTI-COMPONENT GENETIC ALGORITHM (MCGA) O MCGA (Código fonte disponível em https://github.com/danielkneipp/geneticalgorithmtraveling ThiefProblem) possui um tipo de codificação diferente para cada componente do TTP. O componente TSP é codificado enumerando o índice das cidades em ordem começando da cidade 1 e terminando o percurso na mesma cidade. O componente KP é codificado usando um vetor de valores binários possuindo um tamanho igual ao número de itens existentes, os itens são ordenados de acordo com a cidade que eles pertencem. Se o problema possui 5 itens por cidade os cinco primeiros genes fazem referência aos itens da cidade dois (já que a primeira cidade, por definição, não possui itens). A Figura 2 mostra uma representação gráfica dos cromossomos que compõe o indivíduo. x 1 y 21... Figura 2. Representação gráfica da codificação do indivíduo. A solução inicial é obtida usando o Chained Lin-Kernighan (CLK) para o componente TSP e todos os itens não coletados para o componente KP. Depois de gerar a população inicial um processo iterativo começa com a seleção dos indivíduos que passarão por um processo evolucionário baseado em seus valores de fitness. Nesta etapa, utiliza-se a seleção por torneiro, que consiste em dado um tamanho de torneio, indivíduos são selecionados para serem comparados entre si, sendo o melhor selecionado para a próxima etapa. Este procedimento se repete até que o tamanho da população selecionada alcance o tamanho da população original. O Algoritmo 1 mostra um k-torneio em que indivíduos são selecionados a partir da população. Algoritmo 1 Torneio (,,) Cromossomo do componente TSP... y nm i x n Cromossomo do componente KP 1: para 0 até 1 faça 2: indivíduos aleatórios de Indivíduo x 1

3: adicionar em o melhor indivíduo de 4: fim 5: retorna A etapa de cruzamento realiza a criação de novos indivíduos (filhos) baseados nos cromossomos dos indivíduos existentes (pais). Devido à característica multicomponente do TTP, um método de cruzamento diferente foi usado para cada componente do problema. Para o componente KP um operador de cruzamento chamado de N-point foi usado. Este operador combina o plano de coleta de dois pais em dois filhos de forma que um filho receba os alelos de um pai até que um ponto de corte seja alcançado, depois disso este passa a receber os alelos do outro pai. No cruzamento, enquanto o filho recebe os alelos do pai, o filho recebe os alelos do pai, em que, {1,2,, }, com sendo o número de pais. O Algoritmo 2 mostra o operador de cruzamento N-point. Algoritmo 2 N-point (, ) 1: tamanho do cromossomo. 2: diferentes loci (posições) no cromossomo ordenados em ordem crescente 3: 0 4: para 0 até 1 faça 5: se < e =[] então 6: +1 7: fim 8: se j é um número par então 9: [] [] 10: [] [] 11: se não 12: [] [] 13: [] [] 14: fim 15: fim 16: retorna, Para o componente TSP operador de cruzamento Orderbased é utilizado para combinar os percursos de dois pais se gerar percursos inválidos. Este operador usa uma máscara binária gerada aleatoriamente. Quando o valor de uma posição desta máscara é igual a 1 os genes que estão naquela posição dos filhos 1 e 2 são preenchidos com os genes dos pais 1 e 2, respectivamente. Os genes restantes do pai 1 (que possuem o valor da máscara igual a 0) são ordenados na mesma ordem que aparecem no pai 2 e o alelos destes são usados para preencher os genes do filho 1 que ainda estão vazios. O mesmo ocorre para o filho 2, embora neste caso os genes do pai 2 são ordenados de acordo com a ordem do pai 1. Este operador é detalhado no Algoritmo 3. Algoritmo 3 Order-based (Π,Π ) 1: tamanho do cromossomo. 2: vetor aleatório de bits com tamanho 3: para =0 até 1 faça 4: se [] =1 então 5: Π [] Π [] 6: Π [] Π [] 7: fim 8: fim 9: lista de genes em Π que estão na posição em que [] =0 10: lista de genes em Π que estão na posição em que [] =0 11: Ordenar de forma que os genes apareçam na mesma ordem que em Π 12: Ordenar de forma que os genes apareçam na mesma ordem que em Π 13: Preencher os genes ainda vazios de Π com 14: Preencher os genes ainda vazios de Π com 15: retorna Π,Π Depois da aplicação dos operadores de cruzamento, o tamanho da população dobra devido à criação de dois filhos para cada casal. Por isso um procedimento de seleção é aplicado para diminuir a população para seu tamanho original. Esta segunda etapa de seleção também utiliza o método do torneio como mostrado no Algoritmo 1, neste caso, o tamanho da população é o número de indivíduos antes da etapa de cruzamento como tamanho da população. Assim como a etapa de cruzamento, a etapa de mutação também possui um operador para cada componente do problema. Para mutar o componente PM um operador simples chamado de Bit-flip é utilizado, o qual dado um item i e um valor aleatório [1,0], =0 se =1 e, sendo a probabilidade do item ser removido ou adicionado na mochila. Para cada item um r i diferente é gerado. Utiliza-se o 2-OPT para mutar o componente TSP. Este operador de mutação troca um par de arestas do percurso. Uma forma de se fazer isto é dado dois vértices e (não sendo o primeiro ou o último vértice, que referenciam a mesma cidade), é feita uma cópia do percurso até, então o sub-percurso [, ] é copiado na ordem inversa, após isto o resto do percurso é copiado. O Algoritmo 4 mostra o que foi descrito assumindo que o valor do índice do primeiro gene do cromossomo seja igual a 0. Algoritmo 4 2-OPT (Π ) 1: tamanho do cromossomo. 2: número inteiro aleatório [1, 3] 3: número inteiro aleatório [ +1, 2] 4: para =0 até 1 faça 5: Π [] Π [] 6: fim 7: para = até faça

8: Π [] Π [ ( )] 9: fim 10: para = +1 até 1 faça 11: Π [] Π [] 12: fim 13: retorna Π No PCV a ordem do percurso não impacta no custo da solução já que a distância da cidade para a cidade é igual à distância de para. Entretanto, no TTP esta mudança afeta o tempo que um item será carregado, consequentemente alterando o custo. Portanto o operador 2-OPT pode causar uma grande mudança no indivíduo. Por esta razão, os operadores de mutação não são aplicados sempre para todos os indivíduos. O Bit-flip possui uma probabilidade 65% de ser aplicado, 2-OPT possui 17,5% e há 17,5% de chance de os dois operadores serem aplicados. O MCGA utiliza elitismo para manter um conjunto dos melhores indivíduos (também chamados de elites) em cada geração para a próxima. Na etapa de mutação os melhores indivíduos não incluídos no procedimento. Na etapa de cruzamento, antes do procedimento iniciar, um conjunto com os melhores indivíduos é assegurado de fazer parte de. Note que estes melhores indivíduos são incluídos no torneio. A equação 1 é utilizada para avaliar os indivíduos. Se um indivíduo é infactível (soma dos pesos dos itens coletados ultrapassa a capacidade da mochila) um procedimento de correção é aplicado o qual remove os piores itens do indivíduo até que este se torne factível. Os piores itens são caracterizados como tendo os menores valores de, em que é o valor do item e seu peso. O MCGA combina todos estes operadores como mostrado no Algoritmo 5 em que e armazenam as configurações do MCGA e as condições de parada, respectivamente. Dentro de é especificado o tamanho da população ; dois diferentes tamanhos de torneio,, para a etapa de seleção e o torneio depois do cruzamento, respectivamente; três tamanhos de conjunto de soluções elites diferentes,,, para a etapa de seleção, torneio depois do cruzamento e a etapa de mutação, respectivamente; um número de pontos de corte para o operador de cruzamento N-point; a probabilidade para o operador de mutação Bit-flip. Algoritmo 5 MCGA (, ) 1: GerarPopulaçãoInicial(. ) 2: AvaliarIndivíduos() 3: enquanto faça 4: Seleção(,.,.,. ) 5: Cruzamento(,. ) 6: AvaliarIndivíduos() 7: {,} 8: Seleção(,.,.,. ) 9: Mutação(,.,. ) 10: AvaliarIndivíduos() 11: fim 12: retorna MelhorIndivíduo() IV. METODOLOGIA E RESULTADOS Um subconjunto de 9720 instâncias representativas, propostas por Polyakovskiy et al. [6], foi utilizado nos experimentos. Estas 9720 instâncias possuem o número de cidades variando de 51 até 85.900 (81 quantidades de cidades); o número de itens por cidade {1,3,5,10}, 10 categorias de capacidades (variando a capacidade da mochila); 3 tipos de Problema da Mochila: uncorrelated (os valores dos itens não são correlacionados aos seus pesos), uncorrelated with similar weights (mesmo que o não correlacionado mas os itens possuem pesos similares) e bounded strongly correlated (itens com valores altamente correlacionados com seus pesos e é possível existir múltiplos itens com as mesmas características). O MCGA foi configurado da seguinte forma: (i) 150 indivíduos, tamanho do torneio de ambos procedimentos de seleção igual a 2, número de soluções de elite para ambas etapas de seleção e etapa de mutação igual a 15, número de pontos para o N-point igual a 1, e a probabilidade p para o Bit-flip igual a 0.5%. As condições de parada são 10 minutos de execução ou 10000 gerações sem melhora. A heurística CLK não possui limitação em seu tempo execução. Note que o tempo de execução do MCGA inclui a geração da população inicial. Portanto, o tempo gasto pelo CLK é levado em conta. Os experimentos foram conduzidos em um computador com CPU Intel Core i7 4810MQ, 8 GB de memória RAM e sistema operacional Windows 8.1. O MCGA foi implementado na linguagem de programação C++. A Tabela I mostra a média dos valores da função objetivo considerando 30 execuções dos algoritmos: Algoritmo Evolucionário (EA) apresentado por Polyakovskiy et al. [6]; MCGA[8]; heurística baseada em BT proposta por [7] que de acordo com os autores possui uma característica determinística, em outras palavras, os resultados de diferentes execuções serão sempre os mesmos. As instâncias usadas são de um tamanho relativamente menor, com o número de cidades () variando de 51 até 100, com 1, 3, 5 e 10 itens por cidade. Todos os tipos de Problema da Mochila e capacidade da mochila sempre são da categoria 10, totalizado 60 instâncias. TABELA I DESEMPENHO DO MCGA COMPARADO COM A HEURÍSTICA BT [7] E O EA [6]. AS INSTÂNCIAS COM 100 CIDADES SE REFEREM ÀS INSTÂNCIAS kroa100 n m t MCGA EA BT bsc 11396.3 9604.35 11180.05 50 unc 6999.51 6130.09 7167.77 51 usw 5926.52 5418.48 5959.69 bsc 27481.2 24121.29 26997.77 150 unc 21949.6 18780.23 21522.96 usw 18362.2 14843.1 17927.85

52 70 99 100 250 500 51 153 255 510 69 207 345 690 98 294 490 980 99 297 495 990 bsc 44628.4 33708.71 49781.12 unc 33452.7 29508.08 34000.52 usw 32826.8 26483.19 31747.54 bsc 14641.9 7874.7 15331.3 unc 8355.08 7979.65 9151.72 usw 7863.13 7231.54 8655.27 bsc 41971.7 31767.99 49373.15 unc 22171.9 20754.83 23589.93 usw 24238.2 23208.87 26940.18 bsc 82137.8 55942.48 87235.28 unc 39862.4 39386.03 42608.34 usw 41719.6 40536.51 47572.81 bsc 160041 117278.61 179376.75 unc 87094 86049.77 94354.89 usw 81237.9 79072.25 93972 bsc 99301.2 75874.84 103220.98 unc 72161.9 62588.19 72825.86 usw 63153.4 52793.76 64960.24 bsc 12132.6 10212.02 12048.55 unc 13712.9 12234.81 14356.49 usw 10677.5 9077.16 10626.42 bsc 52973.9 42385.48 49422.32 unc 35069.6 30231.71 34612.74 usw 32349 28591.82 29398.59 bsc 89053.1 69353.76 89075.65 unc 54735.7 48568.99 49533.55 usw 51838.3 44832.2 51504.4 bsc 181097 142550.43 159478.11 unc 110046 94962.56 96015.28 usw 103793 89263.78 103315.15 bsc 22637 19910.91 159018.64 unc 15287.2 13975.62 119652.97 usw 13942.3 12527.14 105671.57 bsc 66754.1 57418.5 82861.53 unc 43824.9 39675.44 69423.99 usw 41874.2 37202.45 58207.53 bsc 117066 93366.59 17335.31 unc 77495.2 70168.3 12365.18 usw 67510 60821.47 12972.58 bsc 232309 196269.46 51109.27 unc 149729 138636.78 34560.47 usw 137806 126800.27 39954.74 bsc 19747.5 14749.02 20353.12 unc 14773.2 14149.22 15432.37 usw 13958.9 13879.76 14133.86 bsc 54174.1 39072.07 58010.61 unc 42989.5 41997.23 44628.82 usw 40913.1 39463 43294.08 bsc 93475.2 73185.28 79311.13 unc 74733.2 73997.67 77778.99 usw 66709.8 66751 71705.39 bsc 176962 167126.14 171872.05 unc 150619 148490.64 143345.51 usw 135309 133913.51 141737.38 Os resultados mostram que o MCGA supera o BT em 40% e o EA em 98.3% das instâncias testadas. BT obteve um desempenho notável nas instâncias com 52 cidades, entretanto, mostrou um comportamento inesperado em algumas instâncias com 99 cidades. Nesse último caso, nas instâncias com 98 itens BT obteve resultados significativamente melhores (média de 7,477 vezes se comparado com o MCGA) enquanto teve um desempenho significativamente pior em instâncias com 490 e 980 itens (MCGA alcançou resultados 5,092 vezes melhor em média). Um coeficiente, para cada algoritmo, foi calculado a fim de comparar seus resultados nas 60 instâncias apresentadas da Tabela 1. O cálculo deste coeficiente foi feito de forma a evitar a influência das variações de magnitude entre diferentes instâncias de TTP na comparação. O coeficiente é definido por =, em que é o valor da função objetivo obtido pelo algoritmo dado uma instância e é o melhor (maior) valor da função objetivo obtido para aquela instância. Isso faz com que [,1], em que a é o coeficiente do pior (menor) valor da função objetivo comparando os três algoritmos. será negativo se <0. Por exemplo, na instância com 51 cidades, 20 itens e o componente PM sendo do tipo bounded strongly correlated, os resultados obtidos foram 11396.3, 9604.35 e 11180.05 para o MCGA, EA e BT, respectivamente. Portanto, o coeficiente nesta instância para o MCGA é =. =1,. =. 0,843 no caso do EA e para o BT é. =.. 0,981. A Tabela II mostra a média dos coeficientes c (considerando todas as 60 instâncias) para cada algoritmo. Pode-se notar que o MCGA obteve um desempenho mais consistente nos experimentos (valor médio de c para o MCGA foi mais próximo de 1). TABELA II MÉDIA DOS COEFICIENTES CALCULADOS A PARTIR DOS RESULTADOS APRESENTADOS NA TABELA I MCGA EA BT Coef. médio 0.913212685 0.795308198 0.906058209 V. CONCLUSÃO A interdependência existente em um problema multicomponente se mostra uma característica desafiadora devido a solução ótima de uma componente não implicar em uma boa solução para o problema como um todo. Neste trabalho comparou-se três algoritmos para resolver o TTP. As comparações foram realizadas considerando-se 60 instâncias representativas e pequenas (número de cidades entre 51 e 100) para o TTP. Os experimentos mostraram que, numa visão holística, o MCGA obtém soluções mais competitivas para instâncias pequenas do TTP quando comparado com outros dois algoritmos na literatura. Futuramente, pretende-se realizar um estudo exaustivo das configurações dos parâmetros do MCGA para verificar a influência de cada um deles no processo de otimização. E até mesmo, tentar realizar o ajuste mais adequado dos parâmetros visando as pequenas instâncias do TTP. Pode ser que tal ajuste leve a obtenção de valores da função objetivo significativamente maiores em instâncias com um intervalo de tamanho ou tipo específico. REFERÊNCIAS [1] Bonyadi, M. R., Michalewicz, Z., Barone, L. (2013, June). The travelling thief problem: the first step in the transition from theoretical problems to realistic problems. In Evolutionary Computation (CEC), 2013 IEEE Congress on (pp. 1037-1044). IEEE. [2] Faulkner, H., Polyakovskiy, S., Schultz, T., Wagner, M. (2015, July).

Approximate Approaches to the Traveling Thief Problem. In Proceedings of the 2015 on Genetic and Evolutionary Computation Conference (pp. 385-392). ACM. [3] Applegate, D., Cook, W., Rohe, A. (2003). Chained Lin-Kernighan for large traveling salesman problems. INFORMS Journal on Computing, 15(1), 82-92. [4] Bonyadi, M. R., Michalewicz, Z., Przybylek, M. R., Wierzbicki, A. (2014, July). Socially inspired algorithms for the travelling thief problem. In Proceedings of the 2014 conference on Genetic and evolutionary computation (pp. 421-428). ACM. [5] Mei, Y., Li, X., Yao, X. (2014). Improving efficiency of heuristics for the large scale traveling thief problem. In Simulated Evolution and Learning (pp. 631-643). Springer International Publishing. [6] Polyakovskiy, S., Bonyadi, M. R., Wagner, M., Michalewicz, Z., Neumann, F. (2014, July). A comprehensive benchmark set and heuristics for the traveling thief problem. In Proceedings of the 2014 conference on Genetic and evolutionary computation (pp. 477-484). ACM. [7] Oliveira, M. R., dos Santos, A. G., de Freitas Araujo, M. (2015) Uma heurística busca tabu para o problema do mochileiro viajante. In: Simpósio Brasileiro de Pesquisa Operacional. Ser. SBPO 15, 2015. [8] Vieira D.K.S., Soares G.L., Vasconcelos J.A., Mendes M.H.S. (2017) A Genetic Algorithm for Multi-component Optimization Problems: The Case of the Travelling Thief Problem. In: Hu B., López-Ibáñez M. (eds) Evolutionary Computation in Combinatorial Optimization. EvoCOP 2017. Lecture Notes in Computer Science, vol 10197. Springer, Cham. Daniel Kneipp de Sá Vieira é graduado em Ciência da Computação pela Universidade Federal de Viçosa (2015). Atualmente está cursando mestrado em Ciência da Computação pela Universidade Federal de Minas Gerais e faz parte do Laboratório de Nano Computação e Nanotecnologia Computacional (NanoComp). Os tópicos de seu interesse incluem Aprendizado de Máquina, Deep learning, Computação de Alto Desempenho, Computação Evolutiva, Meta-heurísticas e Visão Computacional. Marcus Henrique Soares Mendes possui doutorado em Engenharia Elétrica pela Universidade Federal de Minas Gerais (2013) com estágio de doutoramento no Laboratório do Evolutionary and Complex Systems Group - ECOS localizado no Departamento de Engenharia Informática da Universidade de Coimbra em Portugal, mestrado em Economia Aplicada pela Universidade Federal de Viçosa (2004) e graduação em Ciência da Computação pela Universidade Federal de Viçosa (2002). Desde 2005 é docente da Universidade Federal de Viçosa - Campus Florestal. Tem interesse nos seguintes temas: Otimização Mono e Multiobjetivo, Computação Evolutiva, Análise Intervalar, Otimização Robusta, Meta-heurísticas, Programação Genética, Regressão Simbólica e Surrogate Models.