UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE CENTRO DE TECNOLOGIA PROGRAMA DE ENGENHARIA DE PRODUÇÃO



Documentos relacionados
Grafo: Algoritmos e Aplicações

Figura 5.1.Modelo não linear de um neurônio j da camada k+1. Fonte: HAYKIN, 2001

Problema de Otimização Combinatória

CAPÍTULO 2. Grafos e Redes

Descrição do processo de priorização para tomada de tempos: Pesquisa ação em uma empresa job shop de usinados aeronáuticos.

Preparação do Trabalho de Pesquisa

7 - Análise de redes Pesquisa Operacional CAPÍTULO 7 ANÁLISE DE REDES. 4 c. Figura Exemplo de um grafo linear.

Relatório Trabalho Prático 2 : Colônia de Formigas para Otimização e Agrupamento

LOGÍSTICA Professor: Dr. Edwin B. Mitacc Meza

ELETRODINÂMICA: ASSOCIAÇÃO DE RESISTORES E EFEITO JOULE¹

PARADOXO DA REALIZAÇÃO DE TRABALHO PELA FORÇA MAGNÉTICA

CAPITAL DE GIRO: ESSÊNCIA DA VIDA EMPRESARIAL

Indicamos inicialmente os números de cada item do questionário e, em seguida, apresentamos os dados com os comentários dos alunos.

UNIÃO EDUCACIONAL DO NORTE UNINORTE AUTOR (ES) AUTOR (ES) TÍTULO DO PROJETO

ADMINISTRAÇÃO I. Família Pai, mãe, filhos. Criar condições para a perpetuação da espécie

IMPLANTAÇÃO DOS PILARES DA MPT NO DESEMPENHO OPERACIONAL EM UM CENTRO DE DISTRIBUIÇÃO DE COSMÉTICOS. XV INIC / XI EPG - UNIVAP 2011

7 etapas para construir um Projeto Integrado de Negócios Sustentáveis de sucesso

3 Estratégia para o enriquecimento de informações

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

Plano de Negócios. Por que escrever um Plano de Negócios?

A Sustentabilidade e a Inovação na formação dos Engenheiros Brasileiros. Prof.Dr. Marco Antônio Dias CEETEPS

Processos de gerenciamento de projetos em um projeto

A TEORIA DOS GRAFOS NA ANÁLISE DO FLUXOGRAMA DO CURSO DE ENGENHARIA DE PRODUÇÃO DA UFF

Simulado Banco de Dados I Bimestre 1 Capítulo 1 Projeto Lógico de Banco de Dados

Marketing Básico Capítulo II. O Composto de Marketing Os 4 P s

Andrade Gutierrez Experiência em Contratos EPC

Motivação. Robert B. Dilts

TÉCNICAS DE PROGRAMAÇÃO

COMO REDIGIR ARTIGOS CIENTÍFICOS. Profa. EnimarJ. Wendhausen

Medição tridimensional

PLANO DE NEGÓCIOS. Causas de Fracasso:

CÓDIGO CRÉDITOS PERÍODO PRÉ-REQUISITO TURMA ANO INTRODUÇÃO

ALGORITMOS E FLUXOGRAMAS

PASSO 8 IMPLANTANDO OS CONTROLES

6. Resultados obtidos

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 1

Top Guia In.Fra: Perguntas para fazer ao seu fornecedor de CFTV

4 Avaliação Econômica de Redes Legada e NGN

Memória cache. Prof. Francisco Adelton

Balanço Energético Nacional Manual do Sistema de Coleta de Dados para o BEN 2012

Gerência de Projetos Prof. Késsia Rita da Costa Marchi 3ª Série

Diretrizes para determinação de intervalos de comprovação para equipamentos de medição.

Fração como porcentagem. Sexto Ano do Ensino Fundamental. Autor: Prof. Francisco Bruno Holanda Revisor: Prof. Antonio Caminha M.

A Análise dos Custos Logísticos: Fatores complementares na composição dos custos de uma empresa

O Princípio da Complementaridade e o papel do observador na Mecânica Quântica

CADERNOS DE INFORMÁTICA Nº 1. Fundamentos de Informática I - Word Sumário

Capítulo 2 Objetivos e benefícios de um Sistema de Informação

PLANEJAMENTO ESTRATÉGICO

Algoritmos Genéticos

Algoritmos Estruturas Seqüenciais. José Gustavo de Souza Paiva

EDUCAÇÃO AMBIENTAL & SAÚDE: ABORDANDO O TEMA RECICLAGEM NO CONTEXTO ESCOLAR

3 Qualidade de Software

Desempenho de Operações. EAD 0763 Aula 2 Livro Texto Cap.2 Leonardo Gomes

LANXESS AG. Werner Breuers Membro da Diretoria. Inovações e Borracha. Discurso Série de Apresentações. LANXESS Rubber Day São Paulo

Conceitos Básicos de Rede. Um manual para empresas com até 75 computadores

FEUP RELATÓRIO DE CONTAS BALANÇO

Regimento Interno do Sistema

OBJETIVO VISÃO GERAL SUAS ANOTAÇÕES

AS CONTRIBUIÇÕES DAS VÍDEO AULAS NA FORMAÇÃO DO EDUCANDO.

Problema de Mistura de Produtos

A PRÁTICA PEDAGÓGICA DO PROFESSOR DE PEDAGOGIA DA FESURV - UNIVERSIDADE DE RIO VERDE

c. Técnica de Estrutura de Controle Teste do Caminho Básico

A SEGUIR ALGUMAS DICAS PARA O DESENVOLVIMENTO DE UM PROJETO CIENTÍFICO

Cotagem de dimensões básicas

PROBLEMA DE ROTEAMENTO DE VEÍCULOS COM JANELA DE TEMPO

Sumário. Introdução - O novo hábito Capítulo 1 - Pra que serve tudo isso? Sobre o vocabulário Benefícios... 7

Entrevista exclusiva concedida pelo Presidente da República, Luiz Inácio Lula da Silva, ao SBT

Data 23/01/2008. Guia do Professor. Introdução

ipea políticas sociais acompanhamento e análise 7 ago GASTOS SOCIAIS: FOCALIZAR VERSUS UNIVERSALIZAR José Márcio Camargo*

Considerações sobre redimensionamento de motores elétricos de indução

1. O Contexto do SBTVD

ESTUDO DE VIABILIDADE

ESTUDO DE VIABILIDADE. Santander, Victor - Unioeste Aula de Luiz Eduardo Guarino de Vasconcelos

análisederisco empresarial

Especificação Operacional.

ASPECTOS CONCEITUAIS OBJETIVOS planejamento tomada de decisão

SERVIÇO PÚBLICO FEDERAL UNIVERSIDADE FEDERAL DO PARÁ CAMPUS UNIVERSITÁRIO DO MARAJÓ- BREVES FACULDADE DE LETRAS

Estrutura para a avaliação de estratégias fiscais para Certificação Empresas B

ELETROTÉCNICA ELM ROTEIRO DA AULA PRÁTICA 01 A LEI DE OHM e AS LEIS DE KIRCHHOFF

AULA 6 Esquemas Elétricos Básicos das Subestações Elétricas

1. Introdução. 1.1 Contextualização do problema e questão-problema

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar

V A CORREÇÃO DO FATOR DE POTÊNCIA EM UMA EMPRESA DE SANEAMENTO

PLANEJAR, ELABORAR E CUMPRIR METAS

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

Administração da Produção I

COBERTURA EM UMA REDE DE SENSORES SEM FIO

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

POSICIONAMENTO LOGÍSTICO E A DEFINIÇÃO DA POLÍTICA DE ATENDIMENTO AOS CLIENTES

Resolução da lista de exercícios de casos de uso

A seguir são apresentadas as etapas metodológicas da Pesquisa CNT de Rodovias.

O MÉTODO HÚNGARO PARA RESOLUÇÃO DE PROBLEMAS DE OTIMIZAÇÃO

Introdução Ciclo de vida tradicional de desenvolvimento Prototipagem Pacotes de software Desenvolvimento de 4ª geração Terceirização

Caso de uma Central de distribuição. Seqüência de processamento. Injeção de plásticos

Aula 9 ESCALA GRÁFICA. Antônio Carlos Campos

Prof. Msc. Fernando Oliveira Boechat

Cliente Empreendedorismo Metodologia e Gestão Lucro Respeito Ética Responsabilidade com a Comunidade e Meio Ambiente

Transcrição:

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE CENTRO DE TECNOLOGIA PROGRAMA DE ENGENHARIA DE PRODUÇÃO ALGORITMO MEMÉTICO COM INFECÇÃO VIRAL: UMA APLICAÇÃO AO PROBLEMA DO CAIXEIRO VIAJANTE ASSIMÉTRICO por FÁBIO FRANCISCO DA COSTA FONTES LICENCIADO EM MATEMÁTICA, UFRN, 2001. DISSERTAÇÃO SUBMETIDA AO PROGRAMA DE ENGENHARIA DE PRODUÇÃO DA UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE COMO PARTE DOS REQUISITOS NECESSÁRIOS PARA A OBTENÇÃO DO GRAU DE MESTRE EM CIÊNCIAS EM ENGENHARIA DE PRODUÇÃO DEZEMBRO, 2006 2006 FÁBIO FRANCISCO DA COSTA FONTES TODOS OS DIREITOS RESERVADOS. O autor, aqui designado, concede ao Programa de Engenharia de Produção da Universidade Federal do Rio Grande do Norte permissão para reproduzir, distribuir, comunicar ao público, em papel ou meio eletrônico, esta obra, no todo ou em parte, nos termos da Lei. Assinatura do Autor: APROVADO POR: Prof. Dario José Aloise, D.Sc. Orientador, Presidente Prof. Otoniel Marcelino de Medeiros, D.Sc. Membro Examinador Prof. Plácido Rogério Pinheiro, D.Sc. Membro Examinador Externo

FONTES, FÁBIO FRANCISCO DA COSTA ALGORITMO MEMÉTICO COM INFECÇÃO VIRAL: UMA APLICAÇÃO AO PROBLEMA DO CAIXEIRO VIAJANTE ASSIMÉTRICO [Rio Grande do Norte] 2006. xii, 72 p. 29,7 cm (UFRN/PEP, Mestrado, Engenharia de Produção, 2006). Tese de Mestrado - Universidade Federal do Rio Grande do Norte, Programa de Engenharia de Produção. 1. Pesquisa Operacional. 2. Algoritmos Evolutivos. 3.Infecção Viral. 4. Caixeiro Viajante Assimétrico. I. UFRN/PEP II. Título (série). ii

CURRICULUM VITAE Fábio Francisco da Costa Fontes, filho de Francisco Fontes de Andrade e de Terezinha da Costa Fontes, nascido no dia 01 de Setembro de 1976, na cidade de Natal, Estado do Rio Grande do Norte. Titulação Licenciado em Matemática pela Universidade Federal do Rio Grande do Norte UFRN, no ano de 2001. Especialista em Técnicas e Ferramentas de Apoio à Decisão pelo Departamento de Informática e Matemática Aplicada DIMAP, da Universidade Federal do Rio Grande do Norte UFRN, no ano de 2003. Atuação em Grupos de Pesquisa Nome do Grupo: Heurísticas e paralelismo para problemas de otimização e de bioinformática. Instituição: Pontifícia Universidade Católica do Rio de Janeiro - PUC/RJ - Departamento de Informática. iii

Dedico este trabalho a todos aqueles que direta ou indiretamente contribuíram para a minha formação acadêmica. Desde os meus professores do primário que apesar de serem pouco valorizados na hora de sua remuneração, faziam seu trabalho com muito amor e dedicação, passando pela minha família que sempre procurou deixar bem claro que a melhor forma de crescermos financeiramente e como cidadãos de bem, conscientes dos nossos direitos, seria através da educação, e chegando até aos meus professores acadêmicos que se dispunham, através do conhecimento adquirido ao longo de décadas, a manter viva e com qualidade a Universidade Pública deste querido Brasil. iv

AGRADECIMENTOS Agradeço Inicialmente a Deus por ter me abençoado com saúde, sabedoria e muita força de vontade para conquistar mais esta importante etapa da minha vida. Agradeço também a Nossa Senhora que acredito estar sempre intercedendo por mim junto a Deus. Agradeço ao meu Pai, Francisco Fontes, que apesar de ter partido desta vida quando eu tinha apenas 9 anos, conseguiu deixar inúmeros exemplos de como deve agir um pai, um filho, um irmão, um esposo e um homem. Agradeço a minha Mãe, Terezinha, minhas Tias Geralda e Irene, aos meus irmãos Denes e Fernanda e ao meu Avô Antônio, por sermos sempre tão unidos, nunca deixando faltar em nosso lar muito amor, carinho, educação e respeito ao próximo. Agradeço também a minha namorada, Adriana Carla, por estar sempre ao meu lado, apesar das minhas ausências nas horas de estudos e pesquisas, pelo seu amor, por ser parte da minha família e permitir-me fazer parte da sua boa família. Agradeço aos meus familiares: tios, tias, primos e primas, e a todos os meus amigos pela convivência tão harmoniosa que possuímos, fundamentais para encher a nossa alma de alegria. Aos novos amigos que conquistei no mestrado por terem enriquecido as nossas aulas com informações e bom humor, espero sempre manter a amizade. Em especial agradecer a Marcos Galvão e Werner que contribuíram para que nossas aulas de Pesquisa Operacional fossem horas de trocas de bons conhecimentos, a Solange pela ajuda no Abstract e, principalmente, o Alisson Guedes, por ter me ajudado a programar as idéias desenvolvidas neste trabalho. Agradeço aos meus anjos da guarda que conseguem aparecer em locais diversos, em momentos importantes, através de pessoas incríveis e conseguem cumprir seu papel de proteger-me. Obrigado a Marcelo Nunes e Benício Basílio, pois sem os dois eu não teria conseguido conciliar o estudo no mestrado com o trabalho. Agradeço a todos que fazem parte do PEP, por terem me proporcionado um ensino de excelência neste mestrado. E por fim, porém tão importante quanto todos citados anteriormente, gostaria de agradecer ao meu Orientador prof. Dr. Dario José Aloise, por ter sido um Orientador incansável, orientando-me até nas manhãs de domingo e cobrando resultados do trabalho até em meus sonhos. Como ser sociável eu fico contente em ter conquistado mais um amigo e como orientando espero que tenha ficado a altura do meu Orientador. v

Resumo da Dissertação apresentada à UFRN/PEP como parte dos requisitos necessários para a obtenção do grau de Mestre em Ciências em Engenharia de Produção. ALGORITMO MEMÉTICO COM INFECÇÃO VIRAL: UMA APLICAÇÃO AO PROBLEMA DO CAIXEIRO VIAJANTE ASSIMÉTRICO FÁBIO FRANCISCO DA COSTA FONTES Dezembro/2006 Orientador: Dario José Aloise Curso: Mestrado em Ciências em Engenharia de Produção A Otimização Combinatória é uma área fundamental para empresas que buscam vantagens competitivas nos diversos setores produtivos, e o Problema do Caixeiro Viajante Assimétrico, o qual se classifica como um dos mais importantes problemas desta área, devido a ser um problema da classe NP-difícil e também por possuir diversas aplicações práticas, tem despertado interesse de pesquisadores no desenvolvimento de Metaheurísticas cada vez mais eficientes para auxiliar na sua resolução, como é o caso do Algoritmo Memético, o qual é um algoritmo evolutivo que se utiliza dos operadores genéticos em combinação com um procedimento de busca local. Este trabalho explora a técnica de Infecção Viral em um Algoritmo Memético, onde a infecção substitui o operador de mutação por conseguir uma rápida evolução ou extinção de espécies (KANOH et al., 1996), proporcionando uma forma de aceleração e melhoria da solução. Para isto se desenvolveu quatro variantes de Infecção Viral aplicadas no Algoritmo Memético para resolução do Problema do Caixeiro Viajante Assimétrico, onde o agente e o vírus passam por um processo de Simbiose, as quais favoreceram a obtenção de um algoritmo evolutivo híbrido e computacionalmente viável. Palavras-Chave: Otimização Combinatória, Problema do Caixeiro Viajante Assimétrico, Algoritmo Memético, Infecção Viral. vi

Abstract of Dissertation presented to UFRN/PEP as fullfilment of requirements to the degree of Master of Science in Production Engineering MEMETIC ALGORITHM WITH VIRAL INFECTION: AN APPLICATION TO THE ASSIMETRIC TRAVELLING SALESMAN PROBLEM FÁBIO FRANCISCO DA COSTA FONTES December/2006 Dissertation Supervisor : Dario José Aloise Program: Master of Science in Production Engineering The Combinatorial Optimization is a basic area to companies who look for competitive advantages in the diverse productive sectors and the Assimetric Travelling Salesman Problem, which one classifies as one of the most important problems of this area, for being a problem of the NP-hard class and for possessing diverse practical applications, has increased interest of researchers in the development of metaheuristics each more efficient to assist in its resolution, as it is the case of Memetic Algorithms, which is a evolutionary algorithms that it is used of the genetic operation in combination with a local search procedure. This work explores the technique of Viral Infection in one Memetic Algorithms where the infection substitutes the mutation operator for obtaining a fast evolution or extinguishing of species (KANOH et al, 1996) providing a form of acceleration and improvement of the solution. For this it developed four variants of Viral Infection applied in the Memetic Algorithms for resolution of the Assimetric Travelling Salesman Problem where the agent and the virus pass for a symbiosis process which favored the attainment of a hybrid evolutionary algorithms and computational viable. Keywords: Combinatorial Optimization, Assimetric Travelling Salesman Problem, Memetic Algorithms, Viral Infection. vii

SUMÁRIO LISTA DE TABELAS...xi LISTA DE FIGURAS...xi LISTA DE ALGORITMOS...xii Capítulo 1 - INTRODUÇÃO...1 1.1 - CONTEXTUALIZAÇÃO...1 1.2- OBJETIVOS DA PESQUISA...4 1.2.1- Gerais...4 1.2.2- Específicos...4 1.3- RELEVÂNCIA DA PESQUISA...4 1.3.1- Relevância Teórica...4 1.3.2- Relevância Prática:...5 1.4 ORGANIZAÇÃO DA DISSERTAÇÃO...5 Capítulo 2 REVISÃO TEÓRICA...7 2.1 OTIMIZAÇÃO COMBINATÓRIA...7 2.1.1 O Problema do Caixeiro Viajante (PCV)...9 2.1.2 Aplicações Práticas do PCV...9 2.1.3 Variantes do PCV...11 2.2 COMPLEXIDADE DE PROBLEMAS...14 2.2.1 Formulação Matemática do PCVA e complexidade...14 2.3 HEURÍSTICAS...15 2.3.1 Heurísticas Construtivas...15 2.3.1.1 Vizinho Mais Próximo...16 2.3.1.2 Inserção Mais Próxima...17 2.3.1.3 Inserção Mais Distante...17 2.3.1.4 Inserção Mais Barata...17 viii

2.3.1.5 Inserção Pelo Maior Ângulo...18 2.3.1.6 Método das Economias...18 2.3.1.7 Heurística de Christofides...19 2.3.1.8 Heurística GKS...20 2.3.2 Heurísticas de Busca Local...20 2.3.2.1 Melhoria Iterativa...21 2.3.2.2 Descida Mais Rápida...21 2.3.2.3 Método das k-substituições ou k-opt...21 2.4 METAHEURÍSTICAS...22 2.4.1- Analogia com Métodos Físicos...22 2.4.2 - Estratégias de Cálculos com Intensificação da Busca Local...23 2.4.3 Analogia com Processos Naturais...25 2.4.4 Métodos Híbridos (Algoritmo Memético)...27 Capítulo 3 ALGORITMOS EVOLUTIVOS E INFECÇÃO VIRAL...28 3.1 - ALGORITMOS EVOLUTIVOS...28 3.1.1 - Algoritmo Genético...29 3.1.1.1 - O Cromossomo...30 3.1.1.2 A Seleção...31 3.1.1.3 O Cruzamento...34 3.1.1.4 A Mutação...39 3.1.2 - Algoritmo Memético...41 3.1.2.1 A Busca Local...42 3.1.2.2 A Geração...42 3.2 - INFECÇÃO VIRAL...43 3.2.1 O Vírus...44 3.2.2 A População de Vírus...44 3.2.3 A Infecção...45 3.3 - O ALGORITMO MEMÉTICO COM INFECÇÃO VIRAL...45 3.3.1 - Implementação 1...46 3.3.1.1 - A Infecção...47 3.3.1.2 - A Simbiose...49 3.3.2 Implementação 2...51 3.3.3 Implementação 3...52 ix

3.3.4 - Implementação 4...55 Capítulo 4 - EXPERIMENTAÇÃO...57 4.1 - METODOLOGIA...57 4.1.1 - Universo e Amostra...58 4.1.2 - Coleta de Dados...58 4.1.3 - Tratamento dos Dados...58 4.2 RESULTADOS E DISCUSSÕES...58 Capítulo 5 CONCLUSÕES E RECOMENDAÇÕES...64 5.1 - CONCLUSÃO...64 5.2 - RECOMENDAÇÕES PARA FUTURAS PESQUISAS...64 REFERÊNCIAS BIBLIOGRÁFICAS...66 x

LISTA DE TABELAS Tabela 3. 1 Mapa de Adjacência do Edge Recombination Crossover...38 Tabela 4. 1 Resultados da Implementação AMIV 1 x Algoritmo Memético Clássico...60 Tabela 4. 2 Resultados da Implementação AMIV 2 x Algoritmo Memético Clássico...61 Tabela 4. 3 Resultados da Implementação AMIV 3 x Algoritmo Memético Clássico...62 Tabela 4. 4 Resultados da Implementação AMIV 4 x Algoritmo Memético Clássico...63 LISTA DE FIGURAS Figura 1. 1 - A cadeia de Valor...2 Figura 2. 1 Unidade Móvel de Pistoneio...13 Figura 2. 2 - Esquema de funcionamento do método K-opt...22 Figura 2. 3 - Esquema de funcionamento da Metaheurística VNS...25 Figura 3. 1 - Representações do Cromossomo...30 Figura 3. 2 - Representação Ordinal...31 Figura 3. 3 Roleta de cromossomos representados pela porcentagem de fitness...32 Figura 3. 4 - Fluxograma do método de seleção por torneio com tamanho igual a 2 para um problema de minimização...33 Figura 3. 5 Crossover de 1 ponto...34 Figura 3. 6 Crossover de 2 pontos...35 Figura 3. 7 Operador Clássico de Mutação...40 Figura 3. 8 - Representações do Agente...42 Figura 3. 9 - Exemplo de um vírus para um cromossomo de representação real...44 Figura 3. 10 Processo de Transcrição...48 Figura 3. 11 - Aumento do Vírus...49 xi

Figura 3. 12 Processo de Transdução...51 Figura 3. 13 Normalização da população variável de vírus...52 LISTA DE ALGORITMOS Algoritmo 2. 1 Algoritmo Vizinho Mais Próximo...16 Algoritmo 2. 2 Algoritmo Inserção Mais Próxima...17 Algoritmo 2. 3 Algoritmo Inserção Mais Barata...18 Algoritmo 2. 4 Algoritmo Inserção Pelo Maior Ângulo...18 Algoritmo 2. 5 Algoritmo Método das Economias...19 Algoritmo 2. 6 Algoritmo de Christofides...20 Algoritmo 2. 7 Algoritmo GKS...21 Algoritmo 3. 1 Algoritmo Genético Clássico...29 Algoritmo 3. 2 Algoritmo Memético Clássico...41 Algoritmo 3. 3 Algoritmo Genético Com Infecção Viral...43 Algoritmo 3. 4 Algoritmo Memético Com Infecção Viral 1...46 Algoritmo 3. 5 Heurística de Inserção Arbitrária...47 Algoritmo 3. 6 Algoritmo Infecção...48 Algoritmo 3. 7 Simbiose 1...50 Algoritmo 3. 8 Algoritmo Memético Com Infecção Viral 2...52 Algoritmo 3. 9 Algoritmo Memético Com Infecção Viral 3...53 Algoritmo 3. 10 Simbiose 2...54 Algoritmo 3. 11 Simbiose 3...55 xii

Capítulo 1 Introdução Este capítulo apresenta a importância da Otimização Combinatória diante do cenário competitivo existente nas indústrias, exemplificando situações da cadeia de valor na qual o uso de Metaheurísticas vem se tornando uma alternativa cada vez mais viável na obtenção de uma vantagem competitiva através de minimização do tempo, mão-de-obra e insumos. Tal cenário funciona como uma motivação para o desenvolvimento deste trabalho, justificando, assim, as necessidades da pesquisa com os objetivos a serem alcançados e sua importância social, econômica e científica. Para maior clareza do assunto, o capítulo foi dividido nos seguintes tópicos: contextualização, objetivos da pesquisa, relevância da pesquisa e organização da dissertação, sendo este último uma descrição de como as informações foram distribuídas ao longo desta dissertação. 1.1 - Contextualização A economia mundial hoje está forçando as empresas a buscarem vantagens competitivas através do tempo. A cadeia de valor (Figura 1.1), que é o conjunto de atividades, que acontecem dentro de uma empresa, com a finalidade de esta realizar seus negócios, necessita que suas atividades estejam muito bem organizadas e interligadas, para que a vantagem de tempo que, por exemplo, obtém-se na produção, não seja perdida na venda ou distribuição, assim como a aquisição de insumos não atrase o início da fabricação, entre outros. 1

Atividades-Meio Infra-estrutura empresarial Gerenciamento de recursos humanos Desenvolvimento de tecnologias Aquisição de insumos Logística interna Atividades-fim Operações Logística externa Marketing e vendas Prestação de serviços Margem Fonte: (Adaptado de Porter & Millar, 1985 apud Laurindo). Figura 1. 1 - A cadeia de Valor Nas empresas, a agilidade nas vendas e na distribuição procura realizar o desejo dos clientes em um curto tempo, oferecendo-lhes, no momento da compra, não apenas o fator preço, mas também o tempo no qual o produto adquirido estará em suas mãos. Na aquisição de insumos, o fator primordial não deve ser apenas o fornecedor que oferece o menor preço, mas aqueles que consigam atender aos pedidos dentro dos prazos mínimos, oferecendo sempre matéria-prima de qualidade. Logisticamente falando, a facilidade de se fazer negócios significa que os fornecedores atendam aos compromissos e as entregas cheguem ao local e hora acertados (STALK apud MONTGOMERY e PORTER, 1998). Fator importante também na economia de tempo acontece durante a produção, quando o ambiente oferece uma seqüência ótima de matéria-prima entre células de manufatura. Este recurso consegue não só economia de tempo, mas economia de mão-de-obra (menos gasto com pessoal). No desenvolvimento tecnológico, procuram-se equipamentos que executem trabalhos repetitivos com maior perfeição e menores desperdícios de tempo, por exemplo, na otimização do funcionamento de equipamentos automáticos de perfuração, soldagem, etc. O gerenciamento de recursos humanos procura distribuir tarefas, visando minimizar sem sobrecarregar pessoal e equipamentos, pois os produtos finais têm prazos a serem cumpridos. Por estes e outros exemplos, e conscientes de que não basta apenas fabricar mais e melhor que seus concorrentes, e sim que estes produtos sejam fabricados com gastos mínimos 2

e estejam acessíveis às pessoas em tempos cada vez menores, é que estudos na área de Otimização Combinatória merecem uma maior atenção. A Otimização Combinatória funciona como uma alternativa na busca de melhores resultados para vários problemas práticos, como: alocação de centros de distribuição; corte e empacotamento; escalonamento de tarefas; roteamento de veículos, tráfico aéreo, etc. Um célebre problema nesta área é o que aborda o assunto de minimização de rotas hamiltonianas, conhecido como problema do caixeiro viajante (PCV). O enunciado diz que um caixeiro viajante tem que visitar n cidades diferentes, iniciando e encerrando sua viagem na cidade de partida e passando por todas as outras uma única vez, não importando a ordem com que as cidades são visitadas. O PCV está classificado como um problema de Otimização Combinatória pertencente à classe dos problemas NP-difíceis, o que significa dizer que, apesar do uso de computadores de última geração, não se pode determinar a solução exata para problemas de grande porte (problemas práticos) em um tempo computacional viável. Devido a isso é que, desde a década de 70, tem havido cada vez mais interesse pelo estudo de métodos Heurísticos, isto é, algoritmos que buscam encontrar boas soluções próximas à solução ótima e em um tempo extremamente rápido (polinomial). Esse esforço de pesquisa levou ao surgimento, na década de 90, das heurísticas inteligentes, denominadas de Metaheurísticas, que resolvem os problemas de otimização combinatória NP-difícil de uma maneira mais flexível e para problemas de porte ainda maiores e com mais precisão, além de exigir pouco esforço computacional. Pois utilizam procedimentos de buscas em vizinhanças que evitam uma parada prematura em ótimos locais, direcionando a busca para uma solução aproximada, tão boa quanto possível do ótimo global desejado no problema proposto. Dentre estas, destacam-se: os Métodos Seqüenciais (Simulated Annealing, Busca Tabu, GRASP, entre outros), e os Populacionais (Colônia de Formigas; Otimização por Nuvem de Partículas; Algoritmo Genético (AG); entre outros). O Algoritmo Genético, inspirado na teoria da evolução de Charles Darwin, é um algoritmo probabilístico desenvolvido com a finalidade de ser aplicado em problemas diversos de Otimização Combinatória. Alguns autores como (NAKAHARA e SAGAWA, 1986 apud KANOH et al., 1996), propõem que, na teoria da evolução, o material genético pode ser transferido de um indivíduo para outro através de vírus, ou seja, um vírus carregando material genético pode infectar e transportar informações genéticas de um indivíduo para 3

outro. No caso da Memética, a evolução de uma população ocorre não apenas através dos operadores genéticos, mas também através da evolução cultural (busca local), ou seja, um indivíduo pode tornar-se forte ao longo de sua geração. Analogamente, o vírus memético tenta passar informações (características importantes) ao longo de gerações. Este trabalho propõe o uso da infecção viral no algoritmo memético. 1.2- Objetivos da Pesquisa 1.2.1- Gerais Esta pesquisa tem por objetivo propor e avaliar o uso de infecção viral em um algoritmo evolutivo (Algoritmo Memético) para a resolução de problemas de Otimização Combinatória NP-difícil. O Problema do Caixeiro Viajante Assimétrico através de instâncias disponibilizadas na TSPLIB 1 é utilizado para validação da proposta. 1.2.2- Específicos Para atingir-se o objetivo maior deste trabalho, faz-se necessário passar por algumas etapas, consideradas essenciais, que são os objetivos específicos: Desenvolver e aplicar o Algoritmo Memético com infecção viral ao Problema do Caixeiro Viajante Assimétrico; Desenvolver um método de Infecção Viral que faz uso de uma população fixa de vírus e de uma população variável de vírus; Desenvolver um método de Infecção Viral que faz uso de um processo de Simbiose, no qual o agente do Algoritmo Memético e o vírus obtêm benefícios após interagirem; Comparar os resultados obtidos nas implementações desenvolvidas com os obtidos pelo Algoritmo Memético; 1.3- Relevância da Pesquisa 1.3.1- Relevância Teórica 1 http://www.iwr.uni-heidelberg.de/groups/comopt/software/tsplib95/ 4

Científica: Este estudo colabora com o enriquecimento da literatura sobre Metaheurísticas com infecção viral, as quais são algoritmos heurísticos inteligentes que podem ser usados em problemas diversos. Em especial este trabalho aborda o Problema do Caixeiro Viajante Assimétrico que é um problema de roteamento pertencente aos problemas de Otimização Combinatória da classe NP - difícil. Acadêmica: Sua contribuição acadêmica tem relevância significativa; seguindo a classificação da Associação Brasileira de Engenharia de Produção (ABEPRO 2 ), este trabalho está dentro da Programação Matemática na área de Pesquisa Operacional. No Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq 3 ), o mesmo enquadra-se na Pesquisa Operacional, que pertence à área do conhecimento de Engenharias. No Programa de Engenharia de Produção da Universidade Federal do Rio Grande do Norte (PEP/UFRN 4 ), ele foi desenvolvido na área de Tecnologias de Gestão da Produção e Operações, mais especificamente na linha de Pesquisa Operacional. 1.3.2- Relevância Prática: Esta pesquisa tem fundamental importância, não apenas nas empresas que exploram a logística e transporte/entrega de mercadorias, pois o PCV aparece em diversas outras situações práticas, como: Programação de operações de máquinas em manufatura; programação de transporte entre células de manufatura; otimização do movimento de ferramentas de corte; otimização de perfurações de furos e inserção de componentes eletrônicos em placas de circuito impresso; na solução de problemas de seqüenciamento de DNA; na solução de problemas de programação e distribuição de tarefas em plantas; análise de estruturas de cristais na cristalografia por Raios-X; etc. 1.4 Organização da Dissertação Esta dissertação esta organizada em 5 capítulos, a saber: O capítulo 1 consta da introdução da dissertação, em que se esclarecem as necessidades teóricas e práticas desta pesquisa, mostrando os objetivos que se deseja alcançar 2 www.abepro.org.br 3 www.cnpq.br 4 www.pep.ufrn.br 5

e também, como está documentado ao longo dos capítulos, o conhecimento construído neste trabalho; O capítulo 2 descreve o conceito de Otimização Combinatória com seus principais problemas e suas áreas de aplicações. Relata também formulações para o PCVA, bem como as principais Heurísticas e Metaheurísticas utilizadas para a resolução deste problema. O Capítulo 3 relata as características dos algoritmos evolutivos: Algoritmo Genético e Memético. Descreve as implementações do Algoritmo Memético com Infecção Viral desenvolvido neste trabalho. O capítulo 4 apresenta a metodologia utilizada e os resultados obtidos após se aplicarem os algoritmos desenvolvidos às instâncias do PCVA, existentes na TSPLIB, além das discussões geradas com os resultados. Por fim, o capítulo 5 relata as conclusões obtidas após toda a experiência da pesquisa, descrevendo as metas atingidas, recomendando áreas de aplicações práticas para o trabalho desenvolvido e sugerindo trabalhos futuros. 6

Capítulo 2 Revisão Teórica Este capítulo apresenta uma revisão sucinta dos principais problemas de Otimização Combinatória, justificando o uso do Problema do Caixeiro Viajante através da sua complexidade, aplicações práticas e pela quantidade de suas variantes. Descreve também as principais Heurísticas Construtivas e de Refinamento utilizadas no problema do Caixeiro Viajante Assimétrico e, por fim, relata as principais Metaheurísticas em suas classificações quanto à analogia com métodos físicos, estratégias de cálculos com intensificação da busca local, analogia com processos naturais e métodos híbridos. Para se conseguir uma estrutura clara e coesa, este capítulo foi dividido nos tópicos: Otimização Combinatória, Complexidade de Problemas, Heurísticas e Metaheurísticas. 2.1 Otimização Combinatória Na Matemática Discreta, dado um conjunto finito, estudam-se os arranjos, grupamentos, ordenações ou seleções de uma coleção de subconjuntos deste conjunto, que em geral, constituem um conjunto finito dotado de estruturas particulares. Um exemplo seria o problema da existência de um Ciclo Hamiltoniano em um dado grafo, o qual pode ser resolvido pela permutação de vértices (BOAVENTURA NETO, 2006). Porém, quando se pretende obter o melhor arranjo, grupamento, ordenação ou seleção, entra-se no campo da Otimização Combinatória (CAMPELLO e MACULAN, 1994). Assim, dado um conjunto de itens E={1.2,...,n}, onde cada ítem possui um custo associado; e, uma série de restrições que devem ser respeitadas, o Problema de Otimização Combinatória (POC) consiste em escolher dentre os subconjuntos viáveis (F 2 E ) aquele que 7

apresenta o menor custo ou maior lucro (S* F, tal que c(s*) c(s), S F), dependendo se no problema deseja-se minimizar ou maximizar (c(s*) c(s)) a função objetivo (c:f R), onde c(s) representa a soma dos custos (lucros) dos elementos de cada subconjunto S. Alguns exemplos clássicos de POC são: O Problema da Mochila (Knapsack Problem): dada uma lista de objetos com custos associados (preço, importância, etc), e uma mochila (caixa, contêiner, etc) com o seu limite de capacidade, o desafio é escolher os objetos a serem carregados dentro da mochila e que satisfaçam a restrição de capacidade da mesma, otimizando o valor do carregamento realizado. O Problema do Número Cromático em Grafos: nesse problema, o objetivo é colorir todos os vértices com o menor número possível de cores, de modo que os vértices adjacentes não tenham a mesma cor. O Problema de p-medianas: Em um problema de localização, deseja-se estabelecer os locais onde serão sediadas facilidades (fábricas, depósitos, hospitais, escolas, etc.) para atender, da melhor maneira possível, a um conjunto espacialmente distribuído de pontos de demanda. O problema de p-medianas é um problema clássico de localização. O objetivo é determinar os locais de p facilidades (denominadas medianas) em uma rede de n nós, de modo a minimizar a soma das distâncias entre cada nó de demanda e a mediana mais próxima. Problema de Escalonamento (Scheduling Problem): Dado um conjunto de tarefas a serem realizadas e dispondo-se de vários recursos (máquinas, homens, etc) que podem realizar tais tarefas, o problema consiste em identificar a forma como os recursos devem ser alocados as tarefas, tal que, o conjunto de tarefas seja executado no menor tempo possível. Problema de Corte: Neste problema, deseja-se encontra a melhor maneira de cortar um material (placa de metal, tecido, espuma, etc.) de forma que o desperdício seja mínimo. O problema do Caixeiro Viajante (PCV): a ser visto com detalhes (aplicações, variantes, complexidade, etc) na próxima seção. Etc. 8

2.1.1 O Problema do Caixeiro Viajante (PCV) O Problema do Caixeiro Viajante (PCV) é um exemplo clássico de um POC, talvez o mais celebrado nesta área (CAMPELLO e MACULAN, 1994). Seu enunciado diz que um caixeiro viajante tem que visitar n cidades diferentes, iniciando e encerrando sua viagem na primeira cidade, não importando a ordem em que as cidades são visitadas. Neste problema, PCV, tem-se como restrição que o caixeiro não pode passar por uma cidade mais de uma vez e que deve encerrar sua viagem na cidade de origem. Os subconjuntos (soluções viáveis) são as possíveis rotas que o caixeiro viajante pode seguir. Os custos associados a estes subconjuntos são as distâncias percorridas entre as cidades ou os tempos, etc. 2.1.2 Aplicações Práticas do PCV Um dos motivos para que o PCV seja um problema tão importante na área de otimização combinatória é devido à sua grande aplicação prática, que surge não apenas em problemas de roteamento, mas também em problemas práticos diversos, como: Programação de transporte entre células de manufatura: No arranjo físico celular, os recursos transformados são pré-selecionados para movimentar-se para uma parte específica da operação (ou célula), na qual todos os recursos necessários a atender suas necessidades imediatas de processamento se encontram (SLACK, CHAMBERS & JOHNSTON, 2002). A célula pode ser montada para funcionar como arranjo físico por processo (por exemplo, uma célula que realiza apenas o processo de pintura de peças) e como arranjo físico por produto (por exemplo, uma célula que realiza apenas a confecção das bancadas de um automóvel). Portanto, para se produzir o objeto desejável por completo, num menor tempo possível, deve-se determinar uma seqüência ótima entre as células. Otimização de perfurações de furos em placas de circuitos impressos; Durante a confecção de placas de circuito impresso, são realizadas centenas de furos para soldagem dos componentes eletrônicos. O equipamento de perfuração realiza vários furos de mesmo diâmetro e, como não existe uma ordem de precedência, o ideal será encontrar uma seqüência de furos que minimize o tempo de processamento. Este problema pode ser formulado como um PCV. Também se deve lembrar que numa placa de circuito impresso realizam-se furos de diferentes diâmetros, ou seja, após a máquina realizar uma série de furos, o equipamento de perfuração é mudado para 9

realizar outra série de furos, portanto a atividade é composta por uma seqüência de PCV. A Inserção de Componentes Eletrônicos em Placas de Circuito Impresso: Para inserir automaticamente os componentes eletrônicos nos furos das placas de Circuito Impresso, é utilizada uma máquina de inserção (RABAK e SICHMAN, 2001). Cada máquina deve efetuar n tarefas, sendo necessários ajustes entre o término de uma operação e início de outra, os quais consomem tempo (tempo de setup). Segundo (LAPORTE, 1992) e (LAWLER et. al., 1985), o problema de encontrar uma seqüência apropriada de inserção dos componentes na placa, de forma a otimizar o tempo de processamento (tempo de execução mais tempo de setup), pode ser modelado como um PCV. Mapeamento Físico de DNA: O DNA é composto das bases (Adenina-A, Citosina-C, Guanina-G e Timina-T); porém o número destas bases é extremamente grande, e as máquinas existentes só conseguem seqüenciar até mil bases, ou seja, não conseguem seqüenciar uma molécula inteira. Então, o DNA é quebrado em pedaços menores, chamados clones, e estes, em pedaços de mil bases. Após conseguirem-se os resultados dos clones, basta remontá-los em sua ordem original para que, juntos dêem o consenso da molécula de DNA; porém esta tarefa não é tão simples, pois não se sabe de que região da molécula original cada clone vem. O mapeamento de cada clone em sua respectiva região de origem no DNA é conhecido como o problema do mapeamento físico de DNA, o qual pode ser formulado como um Problema do Caixeiro Viajante. (CERQUEIRA e STELZER, 2005). O Problema da Fiação do Computador: Em um computador, existem diversos módulos, cada um com um número de pinos. Necessita-se conectar um subconjunto destes pinos com os fios, de tal maneira que nenhum pino tenha mais de dois fios unidos a ele, garantindo que o comprimento do fio seja minimizado. Análise de estruturas de cristais na cristalografia por Raios-X: Usa-se a difração por raio-x para determinar a estrutura dos cristais ou moléculas. Nesta técnica, faz-se incidir um feixe de Raios-X difratados numa placa fotográfica. Os padrões de difração são constituídos por padrões de pontos na placa e podem-se extrair conclusões sobre a estrutura do cristal, através das posições e intensidades destes pontos. Um detector mede a intensidade dos Raios-X, refletidos do material, saindo de várias posições. Em 10

alguns experimentos, o detector deve realizar até 3000 deslocamentos para fazer as medidas. Como o percurso realizado pelo detector na obtenção das medidas não possui uma seqüência obrigatória, ou seja, pode-se realizar o percurso desejado, então se deve minimizar o tempo de análise, escolhendo-se um percurso mínimo entre os pontos de medida. Etc. 2.1.3 Variantes do PCV Considerando C ij o custo para um caixeiro viajante seguir de uma cidade i para uma cidade j, se C ij = C ji, i, j N, ou seja, se o custo de i para j for o mesmo de j para i temos um Problema do Caixeiro Viajante Simétrico (PCVS); porém se C ij C ji, i, j N, temos Problema do Caixeiro Viajante Assimétrico (PCVA) (CAMPELLO e MACULAN, 1994). Se o problema é simétrico e satisfaz a desigualdade triangular C ij + C jk C ik, i, j, k N, temos o Problema do Caixeiro Viajante Euclidiano (PCVE) O amplo uso do PCV Simétrico ou Assimétrico na resolução de diversos problemas reais se deparou em alguns momentos com algumas características novas, o que acabou por inseri-las na formulação do PCV, proporcionando o surgimento de algumas variantes. O Problema do Caixeiro Viajante Múltiplo (PCVM), também conhecido por problema de roteamento de veículos (PRV), consiste em, dados vários caixeiros ou veículos, estabelecer e organizar um itinerário eficiente para cada; ou seja, r itinerários para os veículos realizarem entregas de mercadorias, todos com origem e destino no mesmo vértice. O objetivo geral é minimizar o custo total de transporte no atendimento aos clientes (cidades); isto é, minimizar custos fixos, custos operacionais e o número de veículos envolvidos no transporte. Este tipo de problema vem recebendo bastante atenção de pesquisadores, como é mostrado em (GOLDEN e ASSAD, 1988). O Problema do Caixeiro Viajante com Janelas de Tempo (PCVJT) consiste no problema em que os atendimentos de cada cliente devem obedecer a intervalos de tempo (janelas), ou seja, a chegada a cada cliente deve atender às restrições de tempo préestabelecidas (horário). Neste caso, o problema é também interpretado como um problema de escalonamento (BOAVENTURA NETTO, 2006). O Problema de Orientação (PO) é uma variante do PCV (RAMESH, YOON e KARWAN, 1992), também conhecido pelas denominações: Problema do Caixeiro Viajante 11

Coletor de Prémios (Prize Collecting Traveling Salesman Problem - PCTSP) (BALAS 1989; BALAS 1995; RAMESH, YOON e KARWAN, 1992; VALENTIM 1998); Problema da Rota Orientada (Orienteering Tour Problem - OTP) (RAMESH, YOON e KARWAN, 1992) e, Problema do Caixeiro Viajante Seletivo (Selective Traveling Salesman Problem STSP) (LAPORTE e MARTELO 1990, GENDREAU, LAPORTE e SEMET, 1998). No PCTSP, o caixeiro viajante recebe um prêmio a cada cidade que ele visita e paga uma penalidade a cada cidade que deixar de visitar. Como se deseja partir de uma cidade, visitar as outras cidades que formam o percurso uma única vez e retornar para a cidade de origem (BALAS 1989; BALAS 1995; VALENTIM 1998), deve-se minimizar o custo do percurso e a soma das penalidades, de forma a garantir um ganho que justifique o esforço empreendido. Dentre as variantes do PCTSP, algumas são o Multiobjective Vending Problem (MVP) (KELLER, 1985) e o Travelling Salesman Subtour Problem with Specified Nodes (SN-TSSP) (RENAUD e BOCTOR, 1998). O Problema de Orientação OTP originou-se de uma modalidade de esporte na qual equipes competem entre si para encontrar uma rota com máxima premiação, onde em cada ponto desta rota (cidades) existe uma premiação e após uma equipe atingir aquele ponto e obter sua pontuação, as outras equipes que chegarem ao mesmo ponto terão uma pontuação menor, ou seja, aquela equipe que realizar o trajeto em menor tempo irá somar mais pontos que suas sucessoras e, portanto, será a vencedora. No OTP a rota é um caminho fechado, pois o percurso termina na cidade de origem. No STSP existe um bônus em cada cidade, porém o caixeiro não pode ultrapassar um limite estabelecido de cidade, ou seja, deve-se visitar no máximo um numero x de cidades, de forma a obter-se um máximo de bônus. No Problema de Otimização do Emprego da Unidade Móvel do Pistoneio (POE- UMP) a UMP, que é um veículo coletor de óleo (Figura 2.1), parte da Estação de Tratamento de Óleo (ETO), segue por n poços escolhidos para pistoneio numa seqüência determinada, realizando este processo de pistoneio 5 e retorna à ETO somente ao final da jornada diária. 5 No processo de pistoneio móvel, o princípio de funcionamento é introduzir no poço de petróleo um copo de pistoneio que submerge em torno de 30 metros no óleo e é puxado através do cabo acionado pelo guincho para o tanque da UMP, que tem capacidade de 5m³. Esta operação é repetida até que se alcance um nível do poço em que não haja mais óleo para ser extraído (ALOISE et al., 2001). 12

Como existe um caminhão tanque que recolhe (suga) o óleo do tanque da UMP sempre que este tem armazenado uma boa quantidade, isto permite que o tanque da UMP nunca encha completamente, sendo possível tratar a UMP, no problema, como um veículo com capacidade de armazenamento de tamanho infinito (NEVES, 2000). Segundo (ALOISE, BARROS e NEVES, 2000) este problema poderia ser chamado de problema da coleta orientada PCO, o qual é classificado como uma variante do Problema de Orientação, pois apresenta as mesmas características do problema do caixeiro viajante seletivo com exceção dos tempos de montagem, operação e desmontagem da UMP em cada vértice (poço). Figura 2. 1 Unidade Móvel de Pistoneio No Problema do Caixeiro Viajante Branco e Preto (PCVBP), considerando um grafo G (orientado ou não), de maneira que o conjunto de vértices associados está dividido em brancos e pretos, o objetivo é, além de seguir as mesmas restrições do PCV e encontrar o menor circuito hamiltoniano, partindo arbitrariamente de um vértice branco ou preto, ainda obedecer às restrições adicionais de cardinalidade e comprimento. Na restrição de cardinalidade, o número de vértices brancos entre dois vértices pretos consecutivos não pode ser superior a um número inteiro positivo Q, e na restrição de comprimento, a distância entre dois vértices pretos consecutivos não deve exceder um número positivo L. (MACIEL, MARTINHON e OCHI, 2005). Estes poucos exemplos de variações do PCV, junto com as suas aplicações práticas e os principais problemas existentes na Otimização Combinatória, servem para mostrar a grande importância que esta área tem e o quanto ela é utilizada nos mais diversos campos da ciência, passando pela computação (mineração de dados), aeronáutica (minimização do consumo de combustível nas turbinas de motores em aeronaves), biologia (alinhamento de DNA e proteínas), telecomunicações (Synchronous Optical NETwork - SONET), física (estados de energia mínima), logística (minimização de rotas), estatística (análise de dados), 13

economia (matrizes de entrada/saída), química (empacotamento administração (distribuição de tarefas), etc. de aminoácidos), 2.2 Complexidade de Problemas A obtenção de uma solução exata para os problemas de otimização combinatória, em geral, não é uma tarefa fácil, pois a enumeração completa de todas as soluções viáveis de um problema poderá conduzir à solução ótima em um número finito de passos; porém de tal ordem de grandeza, que o computador mais avançado levaria séculos no processo de cálculo (CAMPELLO e MACULAN, 1994). Assim, métodos exatos de enumeração implícita têm sido cada vez mais explorados no sentido de diminuir substancialmente o número dessas soluções viáveis. Por outro lado, métodos heurístico/metaheurísticos, que fornecem soluções próximas do ótimo, vêm sendo desenvolvidos e aplicados nessas situações. Mais recentemente, pesquisas envolvendo uma combinação de métodos exatos e metaheurísticos encontram-se em evidência, buscando obter melhores resultados na resolução de problemas de grande porte para problemas de otimização combinatória NP-difíceis 6. 2.2.1 Formulação Matemática do PCVA Na programação inteira, que segundo (CAMPELLO e MACULAN, 1994) é um dos campos mais férteis da otimização combinatória, consegue-se modelar diversos problemas com as variáveis de decisão assumindo apenas valores inteiros. No caso do problema do caixeiro viajante assimétrico, a primeira formulação foi proposta por (DANTZIG, FULKERSON e JOHNSON, 1954), que definiram ser a variável binária x ij (i j) igual a 1 se e somente se o arco (v i, v j ) for usado na solução ótima e 0, caso contrário. Formulação: Minimizar Sujeito à : z = n j= 1 i j c ij x ij xij = 1 ( i = 1,..., n) (3.1) (3.2) n i= 1 x ij x ij vi, v j S x ij = 1 ( j = 1,..., n) S 1, ( S V; 2 S n 1) { 0,1} ( i, j = 1,..., n; i j) (3.3) (3.4) (3.5) 6 http://astarte.csr.unibo.it/matheuristics2006/ 14

As restrições (3.2) e (3.3) garantem que, para cada vértice, há somente uma aresta de entrada e uma de saída. A restrição (3.4) garante a eliminação de sub-rotas. Outras formulações surgiram como, por exemplo, a de (GAVISH e GRAVES, 1978), que propuseram as seguintes restrições para eliminação de sub-rotas: n y n ij j= 1 j= 2 j i j i y ji = 1, i = 2,..., n yij ( n 1) xij, i = 1,2,..., n e j = 2,3,..., n y ij 0, i, j = 1,2,..., n e i j Nesta, as restrições correspondem a um problema de fluxo em redes e as variáveis y ij, que representam a ordem em que as arestas são visitadas assumem valores inteiros na solução ótima. Com esta nova formulação, conseguiu-se reduzir as (2 n -2) restrições de (3.4) para (n²+3.n) restrições. Entretanto, o número de passos necessários para a obtenção da solução ótima do PCV ainda cresce exponencialmente com o número de variáveis, o que torna o problema intratável computacionalmente e pertencente à classe de problemas NP-difíceis. Para resolução dos problemas NP-difíceis de dimensões significativas, que é o caso da maioria dos problemas práticos, utilizam-se Heurísticas e Metaheurísticas, algoritmos que conseguem achar uma solução próxima à exata em um tempo computacional viável. As seções a seguir apresentam algumas dessas Heurísticas e Metaheurísticas com vistas à sua aplicação ao Problema do Caixeiro Viajante Assimétrico. 2.3 Heurísticas Segundo (BARR et al., 2001), Métodos Heurísticos, também chamados algoritmos aproximativos, procedimentos inexatos, algoritmos incorretos, ou simplesmente heurísticos são usados para identificar boas soluções aproximadas para cada problema em menos tempo que os algoritmos exatos (quando este existir). 2.3.1 Heurísticas Construtivas As Heurísticas de métodos construtivos iniciam, sem nenhum resultado, a solução de um problema e constroem passo a passo uma solução viável. Apresentam algoritmos gulosos, os quais, devido a enxergarem apenas o que está mais próximo do objetivo desejado, são 15

também chamados de algoritmos míopes. Quando se trata de solucionar o PCV, as variações desta classe de algoritmo, que se apresentam com maior destaque, são: o vizinho mais próximo, a inserção mais próxima, a inserção mais distante, a inserção mais barata, a inserção pelo maior ângulo e o método das economias. Outros algoritmos, também de grande importância, são: o algoritmo de Christofides, que segue os conceitos dos métodos baseados na árvore geradora de peso mínimo e o GKS que, segundo (GLOVER et al, 1999), é uma heurística que oferece melhores resultados na resolução de problemas assimétricos do caixeiro viajante, se comparado com os ditos gulosos. 2.3.1.1 Vizinho Mais Próximo Desenvolvida por (BELMORE e NEMHAUSER, 1988), consiste em, dado um grafo G = (V,A), partir de um vértice inicial e construir uma solução escolhendo, a cada iteração, o vértice mais próximo do último vértice escolhido para compor a solução. Este processo é realizado até que se tenha visitado todos os vértices (Algoritmo 2.1). Este algoritmo é de ordem O(n²) e o ciclo Hamiltoniano obtido sofre forte influência da escolha do vértice inicial. Esta influência é eliminada repetindo o procedimento n vezes, tomando a cada vez um vértice diferente, onde o algoritmo resultante será de ordem O(n³) (CAMPELLO e MACULAN, 1994). Algoritmo 2. 1 Algoritmo Vizinho Mais Próximo 1 Algoritmo VP (G = (N, M)) [Tour em G] 2 Início 3 Ler {G = (N, M) com N = {1, 2,... n} e c i j, i, j N}; 4 H:={1}; 5 x 0 := 0; 6 N:= N\{1}; 7 i:= 1; 8 Enquanto N fazer 9 Início 10 Escolher j N tal que c i j = mínimo {c ik}; 11 H := H { j }; 12 x 0 : = x + 0 c i j ; 13 N := N \ {j}; 14 i:= j; 15 Fim; 16 Escrever (H:= H {1}, x 0 := x 0 + c j 1 }; 17 Fim. Fonte: (CAMPELLO E MACULAN, 1994). Quanto às heurísticas de inserção, que originalmente foram desenvolvidas por (ROSENKRANTZ, STEARNS e LEWIS, 1977), no contexto do (PCVS), o processo será 16

manter em um grafo um ciclo em cada iteração e inserir a próxima cidade no ciclo, de forma ótima. 2.3.1.2 Inserção Mais Próxima Nesta heurística, o ciclo é iniciado com apenas um vértice e a cada iteração este ciclo vai aumentando, parando no momento em que é formado um ciclo Hamiltoniano (Algoritmo 2.2). Esta Heurística é de Ordem O(n³). Algoritmo 2. 2 Algoritmo Inserção Mais Próxima Passo 0: Inicializar o ciclo com apenas um vértice. Passo 1: Encontrar o vértice k fora do ciclo corrente cuja aresta de menor comprimento que o liga a este ciclo é mínima. Passo 2: Encontrar o par de arestas (i,k) e (k,j) que ligam o vértice k ao ciclo, minimizando c ik + c kj - c ij Inserir as arestas (i,k) e (k,j) e retirar a aresta (i,j). Passo 3: Retornar ao passo 1. Fonte: (RIBEIRO, C. C., 2002). 2.3.1.3 Inserção Mais Distante Esta Heurística, também de Ordem O(n³), difere da anterior no passo 1 do algoritmo, onde nesta deve-se encontrar o vértice k fora do ciclo corrente, cuja aresta de menor comprimento que o liga a este ciclo é máxima. Este procedimento acaba por se tornar mais eficiente que a Heurística de inserção mais próxima, porque os primeiros poucos pontos mais distantes esboçam um perfil geral do ciclo, que será refinado posteriormente (BENTLEY, 1992). 2.3.1.4 Inserção Mais Barata Este procedimento é uma simples melhoria das Heurísticas anteriores, pois, ao invés de separar os passos 1, onde se seleciona o novo nó que irá incorporar ao circuito a cada iteração, e 2, no qual se seleciona a posição onde este nó entrará no circuito, acabou-se por fazer a escolha da melhor combinação destes passos em conjunto (Algoritmo 2.3). Isso forneceu uma Heurística que apresenta melhores soluções; porém o tempo de processamento é cerca de n vezes maior ( RIBEIRO, C. C., 2004). 17

Algoritmo 2. 3 Algoritmo Inserção Mais Barata Passo 0: Inicializar o ciclo com apenas um vértice. Passo 1: Encontrar o vértice k fora do ciclo corrente e o par de arestas (i,k) e (k,j) que ligam o vértice k ao ciclo, minimizando cik + ckj - cij Passo 2: (i,j). Passo 3: Inserir as arestas (i,k) e (k,j) e retirar a aresta Retornar ao passo 1. Fonte: (RIBEIRO, C. C., 2002). 2.3.1.5 Inserção Pelo Maior Ângulo Desenvolvida por (NORBACK e LOVE, 1979), esta Heurística se inicia com um ciclo composto por todos os nós que formam a envoltória convexa do grafo, e vão-se inserindo neste ciclo os nós internos a esta envoltória, cujo ângulo entre as arestas seja máximo, parando no momento em que se obtém um ciclo hamiltoniano (Algoritmo 2.4). Algoritmo 2. 4 Algoritmo Inserção Pelo Maior Ângulo Passo 0: Inicializar o ciclo com a envoltória convexa dos nós do grafo. Passo 1: Inserir cada um dos nós não pertencentes à envoltória convexa aplicando uma heurística de inserção: encontrar o vértice k fora do ciclo corrente e o par de arestas (i,k) e (k,j) que ligam o vértice k ao ciclo, tal que, o ângulo formado pelas arestas (i,k) e (k,j) seja máximo. Passo 2: Retornar ao passo 1. Fonte: (RIBEIRO, C. C., 2002). 2.3.1.6 Método das Economias Esta Heurística foi inicialmente proposta por (CLARKE e WRIGHT, 1963) para o Problema de Roteamento de Veículos. Sua idéia básica é partir da pior situação possível, a qual seria a escolha arbitrária de um vértice-base do grafo completo e construir ciclos de tamanho 2 deste vértice para cada um dos (n 1) restantes. A fusão de dois ciclos é realizada 18

a cada iteração, com base no conceito de economia, que seria a conexão direta deles através da aresta (i, j) e remoção das arestas (1, i) e (j, 1), obtendo com isto uma economia de s ij = c 1i + c j1 - c ij (Algoritmo 2.5). Este procedimento se repete até obter um ciclo hamiltoniano. Segundo (CAMPELLO e MACULAN, 1994), esta Heurística é de ordem O(n². log 2 n); porém, se com o intuito de eliminar a influência do vértice-base, realizar o procedimento considerando os (n 1) vértices restantes como vértice inicial, esta heurística será de ordem O(n³. log 2 n). Algoritmo 2. 5 Algoritmo Método das Economias Passo 0: Escolher um vértice base inicial Passo 1: Construir subciclos de comprimento 2 pelo vértice base e por cada um dos n-1 nós restantes. Passo 2: Calcular as economias s ij = c 1i + c j1 - c ij e ordená-las em ordem decrescente. Passo 3: A cada iteração, maximizar a distância economizada sobre a solução anterior, combinando-se dois subciclos (um chegando e outro saindo do nó 1) e substituindo-os por uma nova aresta: percorrer a lista de economias e realizar as trocas que mantêm uma rota iniciando no vértice 1 e passando pelos demais nós, até obter um ciclo hamiltoniano. Fonte: (RIBEIRO, C. C., 2002). 2.3.1.7 Heurística de Christofides Esta Heurística segundo (CAMPELLO e MACULAN, 1994) é de ordem O(n³) e é um método baseado na árvore geradora de peso mínimo, o qual segue o raciocínio de que, eliminando-se qualquer aresta de uma rota, obtém-se uma árvore geradora (Algoritmo 2.6). Portanto a árvore geradora mínima de um grafo constitui um limite inferior para o Ciclo Hamiltoniano ótimo. A Heurística de Christofides, além do conceito de Matching Perfeito Mínimo, ainda utiliza alguns ajustes em uma operação chamada atalho, para transformação da árvore geradora mínima em uma rota. Algoritmo 2. 6 Algoritmo de Christofides Passo 0: Passo 1: Encontre a árvore geradora mínima T Encontre o Matching perfeito mínimo M no grafo completo Passo 2: Encontre um caminho Euleriano Passo 3: aplique a operação de atalho até obter o ciclo Hamiltoniano. 19