Você está na página 1de 78

Universidade Estadual de Campinas

FACULDADE DE ENGENHARIA ELTRICA E DE COMPUTAO

Departamento de Telemtica

Aplicaes de Meta-heurstica Gentica e Fuzzy no Sistema


de Colnia de Formigas para o Problema do Caixeiro
Viajante

Mrcia Braga de Carvalho


Orientador: Prof. Dr. Akebo Yamakami
Dissertao apresentada Faculdade de Engenharia Eltrica e de Computao como parte dos
requisitos exigidos para obteno do ttulo de
Mestre em Engenharia Eltrica.

Banca Examinadora:
Prof. Dr. Ansio dos Santos Jnior

FEEC / UNICAMP

Prof. Dr. Takaaki Ohishi

FEEC / UNICAMP

Profa. Dra. Tatiane Regina Bonfim

FAC / Campinas

Campinas, SP
27 de Julho de 2007

FICHA CATALOGRFICA ELABORADA PELA


BIBLIOTECA DA REA DE ENGENHARIA E ARQUITETURA - BAE - UNICAMP

C253a

Carvalho, Mrcia Braga de


Aplicaes de meta-heurstica gentica e fuzzy no sistema
de colnia de formigas para problema do caixeiro viajante /
Mrcia Braga de carvalho. --Campinas, SP: [s.n.], 2007.
Orientador: Akebo Yamakami
Dissertao (Mestrado) - Universidade Estadual de
Campinas, Faculdade de Engenharia Eltrica e de
Computao.
1. Algoritmo de formiga. 2. Algoritmos genticos. 3.
Conjuntos difusos. 4. Problema do caixeiro viajante. I.
Yamakami, Akebo. II. Universidade Estadual de Campinas.
Faculdade de Engenharia Eltrica e de Computao. III.
Ttulo.

Ttulo em Ingls: Aplications of Genetic and Fuzzy Metaheuristic in the Ant Colony
System for the Traveling Salesman Problem.
Palavras-chave em Ingls: Ant algorithms, Genetic algorithm, Fuzzy set theory, Traveling
salesman problem
rea de concentrao: Automao
Titulao: Mestre em Engenharia Eltrica
Banca examinadora: Tatiane Regina Bonfim, Ansio dos Santos Jnior e Takaaki Ohishi
Data da defesa: 27/07/2007
Programa de Ps-Graduao: Engenharia Eltrica

Resumo
Dentre as vrias tcnicas heursticas e exatas existentes para a resoluo de problemas combinatrios, os algoritmos populacionais de otimizao por colnia de formigas
e genticos tm se destacado devido sua boa performance. Em especial os algoritmos
de colnia de formigas so considerados atualmente como uma das tcnicas mais bem
sucedidas para a resoluo de vrios problemas combinatrios, dentre eles o problema do
caixeiro viajante. Neste trabalho apresentado um algoritmo hbrido que trabalha com
as meta-heursticas de sistema de colnia de formigas e gentico conjuntamente aplicados
no problema do caixeiro viajante simtrico. Alm disso, apresentamos uma proposta para
o algoritmo de formigas quando temos incertezas associadas aos parmetros do problema.
Os resultados obtidos com as metodologias propostas apresentam resultados satisfatrios
para todas as instncias utilizadas.
Palavras-chave: Otimizao por Colnia de Formigas, Algoritmo Gentico, Teoria dos
Conjuntos Fuzzy, Problema do Caixeiro Viajante.

Abstract
Amongst the several existing heuristical and accurate techniques for the resolution of
combinatorial problems, the population algorithms ant colony optimization and genetic
have been detached due to their good performance. In special the ant colony algorithms
are considered currently as one of the techniques most succeeded for the resolution of
some combinatorial problems, amongst them the travelling salesman problem. In this
work is presented a hybrid algorithm which works with the ant colony system and genetic
metaheuristics jointly applied in the symmetric travelling salesman problem. Moreover,
we presented a proposal for the ant algorithm when we have uncertainties associated to
problem parameters. The results gotten with the methodology proposals present resulted
satisfactory for all the used instances.
Keywords: Ant Colony Optimization, Genetic Algorithm, Fuzzy Set Theory, Traveling
Salesman Problem.

iv

Dedicatria

A minha av Margarida Neres Braga (in memorian)


e a minha tia Joelma Souza Braga (in memorian),
que embora no estejam mais presentes, continuam
dentro do meu corao.
Ao meu noivo Maurcio, pelo amor, carinho e apoio
nos momentos difceis ao longo desta caminhada.

Agradecimentos
Agradeo a Deus em primeiro lugar, por tudo o que tem me proporcionado.
Ao meu orientador, o professor Akebo Yamakami, pela orientao, oportunidade e motivao nos momentos de dificuldade.
minha amada me, Jussara, um exemplo vivo de uma verdadeira lutadora a quem eu
devo tudo. A sua criao e educao me fizeram chegar at aqui.
Ao meu noivo Maurcio, meu grande amor e companheiro. Agradeo por tudo que fez
por mim nestes anos. Sem o seu carinho e compreenso teria sido muito mais difcil. Sua
presena em minha vida mais um presente de Deus.
toda minha famlia, por sempre me apoiarem e torcerem muito por mim.
todos os amigos da FEEC, especialmente as colegas que participaram diretamente
comigo desta jornada: Ingrid, Polyane e Priscila.
s minhas amigas da Bahia que sempre torceram por mim: Gleice, Ariana, Aline, Juliana
e a querida Jucy.
Aos professores da banca: Ansio dos Santos Jnior, Takaaki Ohishi e Tatiane Regina
Bonfim, por terem lido o meu trabalho e pelas valiosas correes e sugestes.
todos os colegas que prestigiaram minha defesa.
todos os professores e funcionrios da Faculdade de Engenharia Eltrica - UNICAMP.
CAPES, pelo apoio financeiro.

vi

Sumrio
Resumo e Abstract

iv

Lista de Figuras

ix

Lista de Tabelas

xi

Lista de Abreviaturas

xii

1 Introduo

2 O Problema do Caixeiro Viajante

2.1

Descrio do problema do caixeiro viajante . . . . . . . . . . . . . . . . . .

2.2

Formulao Matemtica . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.3

Complexidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.4

Mtodos para Resoluo do TSP . . . . . . . . . . . . . . . . . . . . . . .

3 Otimizao por Colnia de Formigas

3.1

Consideraes Iniciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.2

Inteligncia por Colnia: Formigas reais e artificiais . . . . . . . . . . . . . 10

3.3

3.2.1

Estigmergia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.2.2

Auto-organizao . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

Ant Colony System para o Problema do Caixeiro Viajante . . . . . . . . . 15


3.3.1

3.4

Algoritmo ACS para o TSP . . . . . . . . . . . . . . . . . . . . . . 19

Algumas contribuies importantes e suas aplicaes . . . . . . . . . . . . 20

4 Algoritmo Gentico
4.1

22

Conceitos Bsicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.1.1

Operadores Genticos . . . . . . . . . . . . . . . . . . . . . . . . . . 25
vii

SUMRIO

viii

4.1.2

Mecanismos de Seleo . . . . . . . . . . . . . . . . . . . . . . . . . 27

4.1.3

Algoritmo Gentico . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

5 Algoritmo Hbrido

29

5.1

Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

5.2

Implementao de um Algoritmo Hbrido ACS+AG-TSP . . . . . . . . . . 30


5.2.1

Estrutura do Algoritmo Hbrido ACS+AG-TSP . . . . . . . . . . . 31

5.2.2

Algoritmo ACS+AG-TSP . . . . . . . . . . . . . . . . . . . . . . . 33

6 Experimentos Computacionais

34

6.1

Parmetros do Algoritmo Hbrido ACS+AG-TSP . . . . . . . . . . . . . . 35

6.2

Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
6.2.1

Instncia eil51 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

6.2.2

Instncia brazil58 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

6.2.3

Instncia eil76 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

6.2.4

Instncia kroA100 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

6.2.5

Instncia bier127 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

6.2.6

Instncia pr226 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

7 Extenso do Ant Colony System para o Problema do Caixeiro Viajante


com Parmetros Incertos

48

7.1

Conjuntos fuzzy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

7.2

Nmeros fuzzy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
7.2.1

Operaes com nmeros fuzzy triangulares . . . . . . . . . . . . . . 50

7.3

Teoria da Possibilidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

7.4

Estrutura do Algoritmo ACS com Incertezas . . . . . . . . . . . . . . . . . 53

7.5

Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
7.5.1

Instncia eil51 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

7.5.2

Instncia eil76 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

8 Consideraes Finais e Perspectivas Futuras

59

61

Bibliogrfia

63

Lista de Figuras
3.1

Caminho dividido igualmente no 1o experimento . . . . . . . . . . . . . . . 11

3.2

Relao entre percentual de formigas no caminho durante o tempo. . . . . 12

3.3

Caminho no 2o experimento com trilhas longas e curtas.

3.4

Comportamento das formigas aps o surgimento de um obstculo entre o

. . . . . . . . . . 12

ninho e a fonte de alimento. . . . . . . . . . . . . . . . . . . . . . . . . . . 13


3.5

Estrutura de ns interligados por arcos utilizado no TSP. . . . . . . . . . . 16

4.1

Exemplo de cromossomo com codificao binria. . . . . . . . . . . . . . . 24

4.2

Exemplo de crossover de 1 ponto . . . . . . . . . . . . . . . . . . . . . . . 25

4.3

Exemplo de crossover de 2 pontos . . . . . . . . . . . . . . . . . . . . . . . 25

4.4

Exemplo de crossover Uniforme . . . . . . . . . . . . . . . . . . . . . . . . 26

4.5

Exemplo de crossover OX . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

4.6

Exemplo de mutao inversiva . . . . . . . . . . . . . . . . . . . . . . . . . 27

4.7

Exemplo de seleo por Roleta . . . . . . . . . . . . . . . . . . . . . . . . . 27

5.1

Exemplo de um Cromossomo representando um tour do TSP . . . . . . . . 31

5.2

Exemplo de crossover entre dois pais #P 1 e #P 2 . . . . . . . . . . . . . . 32

5.3

Exemplo de mutao em um tour do TSP . . . . . . . . . . . . . . . . . . 32

6.1

Grfico de Convergncia obtido pelo ACS+AG-TSP para o grafo eil51 . . . 37

6.2

Grfico de comparao do desempenho dos melhores resultados obtidos


pelo ACS+AG-TSP, ACS e AG para a instncia eil51 . . . . . . . . . . . . 37

6.3

Grfico de Convergncia obtido pelo ACS+AG-TSP para o grafo brazil58 . 39

6.4

Grfico de comparao do desempenho dos melhores resultados obtidos


pelo ACS+AG-TSP, ACS e AG para a instncia brazil58 . . . . . . . . . . 40

6.5

Grfico de Convergncia obtido pelo ACS+AG-TSP para o grafo Eil76 . . 41

ix

LISTA DE FIGURAS

6.6

Grfico de comparao do desempenho dos melhores resultados obtidos


pelo ACS+AG-TSP, ACS e AG para a instncia Eil76 . . . . . . . . . . . . 42

6.7

Grfico de Convergncia obtido pelo ACS+AG-TSP para o grafo kroA100 . 43

6.8

Grfico de comparao do desempenho dos melhores resultados obtidos


pelo ACS+AG-TSP, ACS e AG para a instncia kroA100 . . . . . . . . . . 43

6.9

(a) Grfico de Convergncia obtido pelo algoritmo ACS e (b) pelo algoritmo
ACS+AG-TSP para o grafo bier127 . . . . . . . . . . . . . . . . . . . . . . 45

6.10 Grfico de comparao do desempenho dos melhores resultados obtidos


pelo ACS+AG-TSP, ACS e AG para a instncia bier127 . . . . . . . . . . 45
6.11 Grfico de Convergncia obtido pelo ACS+AG-TSP para o grafo pr226 . . 47
6.12 Erros mdios encontrados pelo algoritmo ACS+AG-TSP . . . . . . . . . . 47
7.1

Nmero fuzzy triangular . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

7.2
7.3

Funes de pertinncia a (x) e b (x) . . . . . . . . . . . . . . . . . . . . . 52


Possibilidade P oss(
a, b) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

7.4

Exemplo de um problema do TSP com custos fuzzy . . . . . . . . . . . . . 53

7.5

Funo de pertinncia associado ao custo mnimo do grafo da Figura 7.4 . 54

7.6

Probabilidade dos ns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

7.7

Comparao das probabilidades fuzzy . . . . . . . . . . . . . . . . . . . . . 55

7.8

(a) Caminho timo com grau de possibilidade 1, (b) caminho com grau de
possibilidade 0,9902, (c) caminho com grau de 0,9804 e (d) caminho com
grau de possibilidade 0,9706 de ser melhor que a soluo tima

. . . . . . 57

A.1 (a) Soluo para o grafo eil51 com o AG com erro de 0, 7% e (b) com os
algoritmos ACS e ACS+AG-TSP soluo tima encontrada 426 . . . . . . 61
A.2 (a) Soluo para o grafo kroA100 com o ACS com erro de 0, 17% e (b) com
o algoritmo ACS+AG-TSP soluo tima encontrada 21282 . . . . . . . . 61
A.3 Soluo para o grafo eil76, (a) com o AG (erro de 2, 42%) , (b) com o ACS
(erro de 0, 9%) e (c) com o algoritmo proposto neste trabalho (soluo
tima encontrada 538) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
A.4 (a) Soluo para o grafo bier127 com o ACS com erro de 0, 78% e (b) com
o algoritmo hbrido soluo tima encontrada 118282 . . . . . . . . . . . . 62

Lista de Tabelas
3.1

Algumas aplicaes de algoritmos ACO em problemas de otimizao combinatria

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

6.1

Problemas simtricos do Caixeiro Viajante utilizados neste trabalho . . . . 35

6.2

Resultados obtidos pelo ACS, AG e ACS+AG-TSP para o grafo eil51 . . . 36

6.3

Resultados obtidos pelo ACS, AG e ACS+AG-TSP para o grafo brazil58 . 38

6.4

Resultados obtidos pelo ACS, AG e ACS+AG-TSP para o grafo Eil76 . . . 40

6.5

Resultados obtidos pelo ACS, AG e ACS+AG-TSP para o grafo kroA100 . 42

6.6

Resultados obtidos pelo ACS, AG e ACS+AG-TSP para o grafo bier127 . . 44

6.7

Resultados obtidos pelo ACS, AG e ACS+AG-TSP para o grafo pr226 . . 46

7.1

Resultados obtidos pelo ACS-Fuzzy para a instncia eil51 . . . . . . . . . . 56

7.2

Resultados obtidos pelo ACS-Fuzzy para a instncia eil76 . . . . . . . . . . 58

xi

Lista de Abreviaturas
ACO

Optimization Colony System - Otimizao por Colnia de Formigas.

TSP

Problem Traveling Salesman - Problema do Caixeiro Viajante.

ACS

Ant Colony System - Sistema de Colnia de Formigas.

AS

Ant System - Sistema de Formiga.

AG

Genetic Algorithm - Algoritmo Gentico.

MMAS

Ant System Max-Min - Sistema de Formigas Max-Min.

HAS

Ant System Hibrid - Sistema de Formiga Hbrido.

xii

Captulo 1
Introduo
O problema do caixeiro viajante pode ser definido como um dos problemas mais proeminentes da rea de otimizao combinatria. A relevncia desse problema se deve a
razes histricas, j que este foi um dos primeiros problemas de otimizao para os quais
se conjecturou a classificao hard [15] e o primeiro descrito no livro Computers and
Intractability [17]. A prtica tambm contribui para sua popularidade, j que inmeras
situaes em cincia e engenharia podem ser formuladas como instncias deste problema.
Embora este seja um problema simples de descrever, ele muito difcil de resolver e
em muitos casos encontrar a soluo tima global uma tarefa praticamente impossvel.
Um dos motivos que sua soluo torna-se mais complexa medida que se aumenta o
nmero de ns do grafo, quando somente atravs de heursticas possvel obter solues
aproximadas [24]. Conseqentemente, surge a necessidade de contornar essa complexidade
e uma das maneiras explorar metodologias de computao natural.
Dentre os algoritmos inspirados nessa metodologia, podemos citar os Algoritmos Genticos e os Algoritmos de Otimizao por Colnia de Formigas.
A maioria dos novos algoritmos so baseados em processos biolgicos ou naturais, como
por exemplo, os algoritmos genticos e os algoritmos baseados em colnia de formigas.
Os algoritmos genticos so algoritmos populacionais baseados na evoluo natural
das espcies. Neste contexto, os indivduos (solues de um problema) so submetidos
a processos de mutao, reproduo, competio e seleo. A reproduo permite a
transmisso de informaes genticas dos pais para os filhos, enquanto a mutao modifica
parte gentica dos indivduos com um nico objetivo de aumentar a diversidade da populao. Esse mecanismo repetido por vrias geraes, fazendo com que a cada gerao
somente indivduos mais aptos sejam selecionados para fazerem parte da prxima gerao.
1

O algoritmo de colnia de formigas foi proposto no incio da dcada de 90, e baseou-se


nas atividades cotidianas das colnias de formigas reais. Foi verificado que as formigas,
medida que se movimentam, liberam um composto qumico conhecido como feromnio.
Quanto maior essas quantidades de feromnio, mais propensas as formigas estaro de
seguir esta trilha. Desta forma, o mtodo de otimizao por colnia de formigas mostrou
ser bastante eficiente para a soluo de diversos problemas combinatrios, destacando-se
entre eles o problema do caixeiro viajante.
O problema do caixeiro viajante aparece em uma srie de aplicaes prticas como
por exemplo, roteamento de veculos [2], problemas de perfurao [26], entre outros.
Em situaes reais comum encontrarmos incertezas nas informaes associadas pois,
por exemplo, se falarmos sobre a temperatura de um copo, para uma pessoa a temperatura
pode ser extremamente agradvel e para outra, muito quente ou fria; isso s vai depender
do ponto de vista do observador. Desta forma, as tomadas de decises baseiam-se no
conhecimento individual, sem ter certeza sobre as informaes [27].
Entretanto, essas incertezas podem ser modeladas e tratadas de uma forma mais robusta utilizando a teoria dos conjuntos nebulosos [33], [14] e [27].
O marco inicial da teoria fuzzy foi o artigo Fuzzy Sets, publicado em 1965 pelo matemtico Lotfi Asker Zadeh [33], com a principal inteno de dar tratamento matemtico a
certos termos lingsticos subjetivos. Este foi o primeiro passo no sentido de se programar
e armazenar conceitos vagos em computadores, tornando possvel a produo de clculos
com informaes imprecisas, a exemplo do que faz o ser humano.
O tratamento de incertezas em problemas de grafos fuzzy ainda est na sua fase inicial,
tanto na parte terica quanto na prtica. Isso se deve s diferentes abordagens que um
problema de grafos fuzzy pode ter, pois os nveis de incertezas podem estar associadas tanto na estrutura (ns e/ ou arestas) quanto nos parmetros (custo, capacidade,
demanda) [32].

Motivao
Encontrar o menor caminho para o problema do caixeiro viajante envolve uma busca
em um espao que cresce de forma fatorial conforme se aumenta o nmero de ns.
O nmero de rotas possveis em um grafo completo do problema do caixeiro viajante
da ordem (n 1)! [18]. Assim, por exemplo, em um grafo completo com 20 ns

3
possvel obter 1,21 x 1017 rotas possveis, tornando-se numa busca exaustiva invivel para
encontrar o caminho com menor custo. Supondo que temos um computador bastante
veloz, capaz de fazer 1 bilho de adies por segundos, desta forma ele seria capaz de
calcular 53 milhes de rotas por segundo. Contudo essa imensa velocidade pouco diante
das rotas que ele tem que analisar e isso pode levar at cerca de 73 anos. Cabe considerar
que um grafo com 20 ns bastante pequeno se comparado com muitos problemas reais
existentes.
Diante disto, proposta uma meta-heurstica para encontrar solues aproximadas
satisfatrias, tentando contornar essa complexidade.
Dentre as meta-heursticas existentes escolhemos a de otimizao por colnia de formigas e o algoritmo gentico, mais precisamente um novo algoritmo hbrido denominado
ACS+AG-TSP (Ant Colony System + Genetic - Travelling Salesman Problem) que trabalha com os algoritmos de Sistema de Colnia de Formigas e Gentico conjuntamente
para resolver o problema do caixeiro viajante.
Quando se trabalha com grafos nos quais so associados custos fuzzy as suas arestas,
sua complexidade aumenta. Desta forma propomos um algoritmo ACS-Fuzzy e verificarmos que possvel tambm resolver o problema do caixeiro viajante com o algoritmo de
sistema de colnia de formigas, quando se tem incertezas nos parmetros.

Objetivos
Neste trabalho feito um estudo do algoritmo de colnia de formigas e do algoritmo gentico e, a partir de testes com esses modelos, sugerido um novo algoritmo. O algoritmo
hbrido proposto nesta dissertao trabalha com as heursticas de colnia de formigas e
gentico, cujo principal objetivo encontrar a melhor soluo para o problema do caixeiro
viajante simtrico, visando contornar a complexidade do problema. Tambm proposto
um algoritmo ACS com parmetros fuzzy para o problema do caixeiro viajante, baseado
na Teoria da Possibilidade. Esse algoritmo tem por objetivo mostrar que possvel tratar
o problema do caixeiro viajante com parmetros incertos.

Organizao do Trabalho
O trabalho est organizado da seguinte maneira: no Captulo 2 conceituado o problema do caixeiro viajante, so apresentadas sua formulao matemtica, complexidade
e alguns mtodos de resoluo. O Captulo 3 faz uma apresentao sobre o algoritmo
de otimizao por colnia de formigas, sua idia principal e seu funcionamento. O Captulo 4 rev os princpios de algoritmos genticos. A seguir, no Captulo 5 proposto
um algoritmo hbrido que visa encontrar a melhor soluo para o problema do caixeiro
viajante. No Captulo 6 so apresentados os experimentos e resultados obtidos para cada
um dos mtodos propostos. No Captulo 7 apresentada uma extenso do algoritmo de
formigas para problemas com parmetros incertos. Finalmente, no Captulo 8 so feitas
as consideraes finais deste trabalho e algumas propostas para trabalhos futuros.
No final da dissertao esto includos anexos com os grafos utilizados neste trabalho.

Captulo 2
O Problema do Caixeiro Viajante
O Problema do Caixeiro Viajante (TSP) um problema clssico da Otimizao Combinatria [22] e tem sido estudado por diversos pesquisadores de diferentes reas. Isso se
deve ao fato de possuir diversas aplicaes prticas. O TSP pertence a uma classe de problemas no determinsticos de tempo no polinomial, classificado como N P - difcil [17].
Por isso, a resoluo do TSP, utilizando mtodos heursticos, ganhou maior importncia,
principalmente quando aplicado a problemas de grande porte.
Este captulo tem por objetivo conceituar o problema do TSP, apresentando sua formulao matemtica, complexidade e mtodos de resoluo utilizando o algoritmo de
colnia de formigas e o algoritmo Gentico, visto que neste trabalho o objeto de anlise
um algoritmo hbrido ACS + AG aplicado ao TSP.

2.1

Descrio do problema do caixeiro viajante

Seja um conjunto de pontos representando n cidades. O problema do Caixeiro Viajante


consiste na determinao de uma rota que inicia em uma cidade, passa por cada cidade
do conjunto apenas uma vez, e retorna cidade inicial da rota perfazendo uma distncia
total mnima. Esta rota denominada ciclo Hamiltoniano de custo mnimo.
A representao deste problema pode ser feita atravs de um grafo completo G =
(V, A), onde V o conjunto de vrtices representando as cidades e A o conjunto de arcos
ou arestas que conectam cada par de cidades i, j V . A cada aresta atribudo um valor
cij , que a distncia da cidade i para a cidade j. Para o TSP simtrico, essa distncia cij
independente da direo dos arcos, ou seja cij = cji , e para o TSP assimtrico cij 6= cji .

2.2 Formulao Matemtica

2.2

Formulao Matemtica

A formulao matemtica para o problema normalmente referenciada na literatura


usando minimizao na funo objetivo, embora esta formulao seja a mesma tanto para
Min (minimizao), quanto para Max (maximizao).
M in

Funo objetivo:

n P
n
P

cij .xij

i=1 j=1

Sujeito a:
n
X

xij = 1,

j = 1, ..., n

(2.1)

xij = 1,

i = 1, ..., n

(2.2)

S V, S 6=

(2.3)

i, j = 1, ..., n

(2.4)

i=1
n
X
j=1

XX

xij |S| 1,

iS jS

xij {0, 1},

onde cij e xij so, respectivamente, os custos e as variveis de deciso associados designao do elemento i posio j. A varivel xij = 1 indica que a cidade j visitada logo
aps a cidade i, caso contrrio xij = 0.
A funo objetivo representa a minimizao do somatrio das distncias entre as cidades da rota, a varivel n representa o nmero total de cidades no problema, S um
subconjunto do conjunto V = {1, 2, ..., n}, e o smbolo | | denota a cardinalidade do conjunto. As restries (2.1) e (2.2) garantem que cada cidade i n ser designada para
exatamente uma cidade j. A restrio (2.3) garante a no existncia de infactibilidade e
a restrio (2.4) define x como uma varivel binria.

2.3

Complexidade

Problemas como o do Caixeiro Viajante so extremamente complexos quando da tentativa de obteno de uma soluo tima.
Os problemas de otimizao combinatria podem ser classificados segundo sua complexidade em, P , N P , N P -difcil e N P -completo, sendo que o problema do caixeiro

2.4 Mtodos para Resoluo do TSP

viajante pertence a classe N P -difcil. Os problemas N P -difcil so caracterizados por


haver reduo polinomial a partir de todo o problema pertencente classe N P .
A classe N P (NonDeterministic Polinomial Time) so aqueles problemas que podem
ser resolvidos por algoritmos no-determinsticos em tempo polinomial.
Problemas P (Polinomial time) formada pelo conjunto de todos os problemas que
podem ser resolvidos por um algoritmo determinstico em tempo polinomial.

2.4

Mtodos para Resoluo do TSP

Embora o problema do caixeiro viajante possa ser descrito de maneira simples, ele pertence classe dos problemas NP -difceis, tornando-o intratvel para obteno da soluo
por mtodos exatos para problemas de grande porte.
Atualmente existe um nmero muito grande de problemas que podem ser modelados
como um problema do caixeiro viajante. Com isso, abordagens exatas e de aproximaes
como as heursticas e metaheursticas, tm sido buscadas para a resoluo de instncias
de grande porte desse problema, tanto para o caso do TSP simtrico quanto para o
assimtrico.
Tcnicas que so freqentemente utilizadas para resolver mtodos exatos do TSP so
branch-and-bound e branch-and-cut.
Os mtodos heursticos embora no garantam encontrar solues necessariamente timas, eles permitem encontrar boa aproximao para problemas reais e com maior rapidez
que os exatos. Por isso o problema do TSP tem sido utilizado nos ltimos anos como base
de comparao para melhorias em diversas tcnicas de otimizao, tais como Algoritmos
Genticos, Colnia de formigas, Busca Tabu, Busca Local, Redes Neurais, dentre outras.
A resoluo do problema do caixeiro viajante, utilizando-se a heurstica de Colnia de
Formigas, pode ser encontrada em [9]. A idia desta heurstica foi inspirada na observao
das colnias de formigas reais e baseia-se na capacidade das formigas encontrarem um
caminho mnimo entre a colnia e a fonte de alimento. Neste artigo, so mostradas
comparaes entre a heurstica de otimizao de colnia de formigas e os mtodos de
otimizao global, como: Simulated Annealing, Rede Elstica e Algoritmos Genticos,
sendo que os resultados da heurstica de Colnia de Formigas foram melhores que os trs
mtodos para as matrizes de custos consideradas. Alm disso, a heurstica proposta
aplicada com a tcnica de melhoria 3-opt, reduzindo os erros mdios que se encontravam

2.4 Mtodos para Resoluo do TSP

nos grafos considerados.


Outros trabalhos semelhantes, que utilizam a heurstica podem ser encontrados em
[31], [12], [10] entre outros.
O trabalho de Pilat e White (2002) mostra a aplicao de um mtodo hbrido de
Algoritmos Genticos aplicado ao mtodo de Colnias de Formigas para o problema do
Caixeiro Viajante simtrico. Os Algoritmos Genticos so utilizados para determinar
quais formigas artificiais servem para melhorar as solues para o problema.
No trabalho de Merz e Freisleber (1997) apresentada a aplicao de Algoritmos
Genticos para o problema do Caixeiro Viajante simtrico, com aplicao da tcnica de
Busca local 2-opt para a rota encontrada, com o objetivo de encontrar melhores rotas
para as prximas geraes. Os resultados encontrados no banco de dados do TSPLIB
(http://www.iwr.uni-heidelberg.de/groups/comopt/software/TSPLIB95/) mostram que
esta tcnica capaz de obter solues na maioria dos casos citados.
Affenzeller e Wagner (2003) mostra uma tcnica para determinar boas solues para
o TSP com o uso de Algoritmos Genticos atravs das comparaes entre o fitness de
novas solues com o fitness da populao e dos fitness dos novos indivduos e de seus
pais. Os resultados para alguns problemas do TSPLIB so melhores do que os resultados
encontrados com a aplicao de Algoritmos Genticos da forma tradicional.
O trabalho de Sari, Sherali e Bhootra (2005) mostra uma nova formulao para o
problema do Caixeiro Viajante assimtrico, criando restries para a criao de sub-rotas.
Os resultados para alguns problemas do TSPLIB mostram que esta nova formulao
permite a obteno de solues timas em todos os casos testados.
Os Algoritmos Genticos representam, atualmente, uma poderosa ferramenta para
busca de solues de problemas com alto nvel de complexidade. Dentre alguns trabalhos
que utilizam algoritmos genticos para o TSP tem-se, [20] entre outros.

Captulo 3
Otimizao por Colnia de Formigas
Neste captulo sero apresentadas algumas noes importantes para a compreenso
da meta-heurstica de Otimizao por Colnia de Formigas (Ant Colony Optimization
- ACO), seu funcionamento e o algoritmo estudado, o Ant Colony System, de modo
a facilitar a compreenso deste trabalho. Para estudos mais aprofundados do assunto,
consultar [3] e [13]. Este captulo est organizado da seguinte maneira:
Na seo 3.1 feita uma breve introduo sobre a meta-heurstica ACO e so apresentadas algumas diferenas entre o algoritmo inicial, o Sistema de Formigas (Ant
Colony - AS ) e o Sistema de Colnia de Formigas (Ant Colony System - ACS );
Na seo 3.2 so apresentadas algumas caractersticas que conferem as semelhanas
entre as formigas reais e as artificiais, bem como algumas idias que foram transferidas das colnias de formigas reais para as formigas artificiais;
Na seo 3.3 descrito o processo de construo do algoritmo ACS e apresentada
a descrio detalhada de seu funcionamento;
Na seo 3.4 so apresentadas algumas contribuies e aplicaes da meta-heurstica
ACO;

3.1

Consideraes Iniciais

Ant Colony Optimization uma meta-heurstica cuja fonte de inspirao o comportamento de colnias de formigas, baseado na observncia de que as formigas so capazes

3.2 Inteligncia por Colnia: Formigas reais e artificiais

10

de encontrar o menor caminho entre o ninho e a fonte de alimento. Esses comportamentos


so explorados em colnias artificiais de formigas para obteno de solues aproximadas
aos problemas de Otimizao Combinatria, como por exemplo o problema do caixeiro
viajante. O primeiro algoritmo de ACO, chamado Sistema de Formigas - AS, proposto
inicialmente por Dorigo em meados dos anos 90, foi aplicado ao problema do Caixeiro
Viajante. Posteriormente, Dorigo e Gambardella (1997), propuseram o algoritmo denominado Ant Colony Systems - ACS para melhorar o desempenho do AS. Segundo eles o
ACS difere em dois aspectos importantes do AS.
1. Em ACS o feromnio adicionado somente aos arcos que pertencem a melhor soluo
global. J em AS esse feromnio adicionado a todos os arcos da rede.
2. Em ACS, que cada vez que uma formiga usa o arco (i, j) para mover-se da cidade
i, para a cidade j, remove-se uma quantidade do feromnio desse arco, segundo a
equao 3.4, j em AS esse processo de evaporao do feromnio no ocorre.

3.2

Inteligncia por Colnia: Formigas reais e artificiais

As idias utilizadas na meta-heurstica ACO provm da observao das colnias de


formigas reais. Existem caractersticas que conferem semelhanas entre as formigas reais
e as artificiais. Algumas dessas semelhanas sero abordadas ao longo deste texto.
A meta-heurstica ACO prev uma colnia de agentes independentes entre si, em sinergia na busca de boas solues. Tal cooperao entre os agentes ocorrem pela leitura e
escrita em um ambiente compartilhado, em busca do menor caminho entre uma origem
(ninho) e um destino (alimento).
As formigas artificiais so agentes que se movem de cidade para cidade em um grafo
do TSP. Podemos citar trs idias do comportamento natural das formigas que foram
transferidas para a colnia de formigas artificiais.
A preferncia para trajetos com nvel elevado de feromnio.
A taxa de crescimento mais elevado da quantidade de feromnio em alguns trajetos
mais curtos.
A deposio do feromnio medeia uma comunicao entre as formigas.

3.2 Inteligncia por Colnia: Formigas reais e artificiais

11

A estas formigas artificiais foram dadas algumas potencialidades que no tem as contrapartes naturais, mas que foram observadas para serem bem sucedidas nas aplicaes
do TSP: as formigas artificiais so dotadas de uma memria denominada lista tabu para
memorizar as cidades j visitadas.
Essa memria esvaziada no comeo de cada nova viagem, e atualizada adicionando
a cidade inicial corrente ao conjunto das cidades j visitadas. Essa memria muito
importante no TSP, pois evita que uma cidade seja visitada duas vezes, define o conjunto
de cidades que uma formiga, localizada na cidade i, ainda tem para visitar e permite que a
formiga calcule o comprimento do tour e retroceda o caminho para depositar o feromnio.
A seguir sero mostrados dois experimentos com formigas reais realizados por [8], que
serviu de inspirao criao do mtodo de Otimizao de Colnia de Formigas. Esta
experincia consistiu na submisso de uma colnia de formigas Iridomyrmex humilis a
uma fonte de alimento atravs de dois caminhos distintos. No primeiro caso, o caminho
entre o ninho e a fonte de alimento dividido em duas partes iguais, como pode ser visto
na figura 3.1 abaixo.

Figura 3.1: Caminho dividido igualmente no 1o experimento

No inicio as formigas so liberadas e procuram a fonte de alimento atravs de um


caminho aleatrio, mas rapidamente converge para uma das pontes. A explicao para
tal comportamento est relacionada ao feromnio depositado pelas formigas durante a
sua locomoo. Entretanto, algumas formigas ainda fazem um caminho aleatrio, para
procurar novos caminhos que ainda possam ser descobertos. Na figura 3.2, apresentado o
percentual de formigas seguindo cada um dos caminhos em um espao de tempo definido.

3.2 Inteligncia por Colnia: Formigas reais e artificiais

12

Figura 3.2: Relao entre percentual de formigas no caminho durante o tempo.

J o segundo experimento tinha como objetivo verificar como as formigas se comportariam a mudanas no ambiente global, visto que isto normalmente ocorre entre o ninho
e o formigueiro. Para isto foi desenvolvido um novo caminho entre o ninho e a fonte de
alimento. Neste caminho existem duas partes mais longas e duas partes mais curtas, conforme figura 3.3. Inicialmente, quando apresentados os dois caminhos ao mesmo tempo,
as formigas s podem percorrer os caminhos mais longos. Aps a deposio de feromnio
neste pior caminho e consequentemente fixao da trilha, so liberados os caminhos mais
curtos para serem percorridos.

Figura 3.3: Caminho no 2o experimento com trilhas longas e curtas.

Neste experimento, Deneubourg concluiu que as formigas no trocam de caminho


imediatamente quando apresentado o novo(menor) caminho, porm quando este encontrado, ele tende a ser cada vez mais utilizado e, com o passar do tempo, todas as formigas
passam a percorr-lo.
As formigas so insetos sociais que possuem um sistema complexo de organizao e

3.2 Inteligncia por Colnia: Formigas reais e artificiais

13

diviso de tarefas, cuja principal funo garantir a sobrevivncia do formigueiro. Elas


so capazes de encontrar o menor percurso entre a fonte de alimento e o ninho, sem usar
sugestes visuais ou qualquer outro tipo de controle centralizado [9].
Essas funcionalidades so obtidas por um processo de estigmergia e auto-organizao
em que agentes simples so capazes de emergir comportamentos complexos e direcionado
a um objetivo. Por isso elas utilizam uma substncia chamada feromnio, que uma
estrutura qumica de comunicao e sinalizao.
Ao se deslocarem, as formigas tendem a seguir trilhas com maior nvel dessa substncia. Ao seguir tais caminhos, deposita-se mais feromnio, o que torna o caminho mais
atraente na medida em que mais formigas escolhem a mesma trilha. Individualmente uma
formiga pode no produzir boas solues para o problema em questo, mas atravs da
cooperao so capazes de encontrar boas solues. Esse comportamento foi apresentado
no experimento feito por [9] e pode ser visto na Figura 3.4.

Figura 3.4: Comportamento das formigas aps o surgimento de um obstculo entre o


ninho e a fonte de alimento.
Na figura 3.4(A), as formigas reais seguem um trajeto entre o ninho e a fonte de
alimento. Na ilustrao (B), um obstculo aparece no caminho: as formigas escolhem
de forma aleatria o caminho a direita ou a esquerda com a mesma probabilidade. Na
ilustrao (C), o feromnio depositado no menor caminho mais rapidamente. Na ilustrao (D), todas as formigas escolhem o caminho com maior nvel de feromnio, que
conseqentemente o caminho mais curto.

3.2 Inteligncia por Colnia: Formigas reais e artificiais

3.2.1

14

Estigmergia

O processo de estigmergia um processo que explica a coordenao de tarefas na


reconstruo de ninhos de cupins (para maiores detalhes consultar [3]). Um exemplo
bastante evidente da estigmergia a busca por alimentos realizada pelas formigas. A
interao dos insetos para produzir um sistema auto-organizado pode ocorrer de duas
formas distintas:
Direta: Ocorre atravs do contato tctil entre os animais por suas antenas ou mandbulas, do contato visual ou mesmo quimicamente pelos odores de outros insetos,
como no caso das formigas, com o feromnio.
Indireta: Esta forma de comunicao ocorre quando um indivduo de uma populao altera seu meio prximo, fazendo com que o ambiente local onde ele est seja
modificado, e que outros indivduos que estejam no mesmo meio, em um momento
posterior, tenham suas decises afetadas por esta modificao individual.

3.2.2

Auto-organizao

A auto-organizao um mecanismo dinmico no qual uma estrutura global bem definida surge a partir de iteraes de componentes de baixo nvel, no caso as formigas. Para
que esse processo de auto-organizao ocorra necessrio que algumas regras especifiquem
as formas de interaes dos componentes com o meio local onde esto localizados, sem
referncia a todo o sistema.
Este conjunto de regras podem ser resumidos em quatro grupos bsicos (para maiores
detalhes consultar [3]:
1. Auto-alimentao positiva(amplificao): A amplificao, que preferncia no caso
das formigas, dos melhores caminhos faz com que estes se tornem caminhos preferenciais na busca.
2. Auto-alimentao negativa: Utilizado para contrabalanar o efeito da alimentao
positiva, fazendo com que caminhos pouco utilizados sejam esquecidos com o passar
do tempo.
3. Aleatoriedade: A auto-organizao surge da amplificao das flutuaes, que permitem a localizao de novas solues superando minmos locais.

3.3 Ant Colony System para o Problema do Caixeiro Viajante

15

4. Um nico individuo pode produzir uma estrutura organizada atravs de uma trilha
estvel de feromnio. Entretanto, esta estrutura no ser otimizada; para que um
sistema auto-organizado encontre boas solues necessrio que mltiplos indivduos interajam entre si a partir dos seus resultados e atravs do ambiente comum.

3.3

Ant Colony System para o Problema do Caixeiro


Viajante

Aqui apresentado o esquema do algoritmo de sistema de colnia de formigas para o


problema do caixeiro viajante proposto por [9].
A primeira meta-heurstica de otimizao por colnia de formigas foi o AS [11]. Posteriormente [9] propuseram o algoritmo ACS para o TSP. O sistema de colnia de formigas
uma forma de resoluo de problemas que simulam o comportamento de um grupo de
formigas na busca pelo menor caminho.
Em um sistema de colnia de formigas - ACS, duas tarefas so principais:
A construo de uma representao do problema de uma forma verstil, normalmente uma estrutura na forma de um grafo e que permita uma regra probabilstica
de transio entre os ns baseada na trilha de feromnios e no valor de cada arco;
O desenvolvimento de uma heurstica para transio de ns que possa avaliar a
qualidade dos caminhos tomados.
O problema do TSP busca o caminho que minimize o trajeto entre os diversos ns
interligados atravs de arcos em uma estrutura semelhante a um grafo, como pode ser
visto na Figura 3.5.
Para cada arco (i, j) do grafo, definida uma varivel ij , conhecida como trilha
artificial de feromnio. Inicialmente este ij igual para todos os arcos da rede. Cada
formiga k constri uma soluo a partir de um dos ns do grafo de forma randmica.
Assim ,a varivel ij incrementada conforme o passar das formigas e decrementada
a cada ciclo. A intensidade da trilha de feromnio definir a utilidade da trilha para
as formigas, isto , quanto maior a quantidade de feromnio, melhor esta trilha e as
formigas tendem a utilizar esse percurso em detrimento dos outros.
A cada n, a formiga artificial executa uma funo estocstica para calcular a probabilidade de utilizao dos arcos. Inicialmente a funo probabilstica foi desenvolvida

3.3 Ant Colony System para o Problema do Caixeiro Viajante

16

Figura 3.5: Estrutura de ns interligados por arcos utilizado no TSP.

relacionando-se apenas com o processo de estigmergia, ocasionado pelo acumulo de feromnio pelas trilhas. Desta forma, a funo continha apenas um termo relacionado
deposio do feromnio, como apresentado na equao (3.1).
pkij = [ij ]

(3.1)

Esta abordagem, apesar de obter alguns resultados para alguns problemas especficos,
no obtinha bons resultados para diversas instncias do TSP e ainda no tinha uma grande
confiabilidade dos resultados. Por isso decidiu-se pela implementao de um segundo
termo que seria um valor heurstico relacionado natureza do problema e que permitiria
uma maior explorao. Esta nova frmula apresentada na equao (3.2).
u = argmax{[ij ] [ij ] }, se q q0 ;

(3.2)

onde q uma varivel aleatria uniformemente distribuda entre [0, 1], q0 um parmetro ajustvel entre (0 q0 1), e os parmetros e controlam a intensidade do
feromnio ij , e a qualidade da aresta ij , respectivamente.
A equao (3.2) foi normalizada dividindo-se os termos desta equao pelo somatrio
de todas as probabilidades possveis. Assim, obteve-se uma frmula probabilstica onde
cada formiga k constri o seu caminho movendo-se atravs de uma sequncia de locais
visinhos, onde os movimentos so selecionados segundo uma distribuio de probabilidades
dada pela equao (3.3):
[ij ] [ij ]

lJ k [ij ] [ij ]

pkij = P

(3.3)

3.3 Ant Colony System para o Problema do Caixeiro Viajante

17

onde:
pkij : a probabilidade da formiga k, que se encontra na cidade i, escolher o
n j como prximo n a ser visitado;
ij : quantidade de feromnio existente no arco (i, j). Inicialmente, adota-se
um mesmo valor 0 para todos os arcos da rede;
ij : funo heurstica que representa a atratividade do arco (i, j). No caso do
problema do caixeiro viajante, adota-se o inverso 1/dij do valor da distncia
entre os ns i e j;
Jik : conjunto de pontos ainda no visitados pela formiga k, que se encontra
atualmente no ponto i;
: um parmetro que pondera a importncia relativa da trilha de feromnio,
ij na deciso de movimentao da formiga.
: valor heuristicamente escolhido, que pondera a influncia relativa da distncia ij entre os ns i e j no processo de deciso.

Podemos observar que se = 0 , as formigas seguiro a heurstica do vizinho mais


prximo para dar o prximo passo, enquanto que se = 0, as formigas selecionaro um
caminho com maior nvel de feromnio e pode ocorrer uma estagnao com o passar das
geraes, levando o algoritmo a pontos sub-timos. No caso do ACS o valor de igual
a 1.
A equao (3.3) mostra que a preferncia da formiga por um determinado caminho
maior para os caminhos com maior nvel de feromnio e com menor distncia. A
atualizao do feromnio realizada local e globalmente.
A atualizao local realizada de acordo com a euqao3.4 para evitar uma aresta
muito forte que est sendo escolhida por todas as formigas, e ela motivada pela evaporao do feromnio no caminho por onde cada formiga k passar. Esse processo aumenta
o poder de explorao das formigas.
ij = (1 ) ij + 0 ,

0 = (n.Lnn )1

(3.4)

onde n o nmero de ns do grafo, Lnn um valor heurstico de menor caminho encontrado por alguma formiga e um parmetro que determina a velocidade da evaporao
do feromnio.

3.3 Ant Colony System para o Problema do Caixeiro Viajante

18

J na atualizao global pretendido recompensar as arestas que pertencem a rotas


mais curtas. Uma vez que as formigas artificiais terminam seus trajetos, a melhor formiga
deposita feromnio em arestas visitadas que pertencem a seu trajeto e as outras arestas
pertencem inalteradas. Essa atualizao dada pela equao (3.5). Assim, a cada arco
(i, j) da rede, adiciona-se uma quantidade de feromnio proporcional ao tamanho da
rota obtida, ou seja, quanto mais curta a rota, maior ser a quantidade de feromnio
depositada.
ij = (1 ) ij + 4ij ,

[0, 1]

(3.5)

onde,
(
ij =

1
,
Lk

se (i, j) usado

0,

caso contrrio

(3.6)

O primeiro termo das equaes (3.4) e (3.5) responsvel pela evaporao do feromnio. O parmetro utilizado para que os caminhos que so menos freqentados sejam
esquecidos com o passar do tempo. O segundo termo da equao (3.5) responsvel por
aumentar a concentrao de feromnio apenas nos arcos visitados pela melhor formiga,
onde Lk a distncia total percorrida na rota construda pela melhor formiga da iterao.
Quanto menor a rota, maior a quantidade de feromnio depositada.
Esse procedimento se repete at que um nmero mximo de iteraes tenha sido
alcanado ou caso no se verifique mais melhorias nas solues encontradas.

3.3 Ant Colony System para o Problema do Caixeiro Viajante

3.3.1

19

Algoritmo ACS para o TSP

Algoritmo 3.3.1: Algoritmo ACS - TSP


Inicializao:
Para cada aresta (i, j) do grafo, estabelece-se um nvel inicial de feromnio.
Para cada formiga k, escolhe-se um n aleatrio para iniciar o percurso.
Loop
para t indo de 1 at um nmero mximo de iteraes faa,
para k indo de 1 at m faa,

(m = nmero de formigas)

Cada formiga k constri um caminho selecionando a prxima cidade a ser


visitada segundo a regra determinstica ou probabilstica influenciada
pelo nvel de feromnio ij e da mtrica heurstica de afinidade ij ,
j = argmax{[ij ] [ij ] },

se

q q0 ;

[ij (t)][ij ]
,
[ (t)][il ]
lJ k il

se

q > q0 ;

pkij (t) =

Aps cada transio da formiga k, aplique a regra de atualizao local, motivada pela evaporao do feromnio,
ij (t) (1 ) ij (t) + 0
fim-do-para
Para cada soluo, calcule a distncia Lk (t) do caminho descoberto pela
formiga k,
Se Lk (t) < L ento S Sk (t) ;
Para cada aresta (i, j), atualize o feromnio ij (t), (i, j) Lk , de acordo com
o processo de deposio e evaporao de feromnio.
ij (t) (1 ) ij (t) + ij (t), onde ij (t) = 1/Lk
fim-do-para
fim-do-Loop
Retorne a melhor soluo S .

3.4 Algumas contribuies importantes e suas aplicaes

3.4

20

Algumas contribuies importantes e suas aplicaes

Pesquisas sobre algoritmos de ACO, e sobre algoritmos de formigas, produziram um


grande nmero de aplicaes bem sucedidas aos problemas de otimizao combinatorial,
tais como problemas de ordenao seqencial [16], roteamento de veculos [5], entre outros.
Tambm foram propostos diversos algoritmos baseado no algoritmo original; na Tabela
3.1 encontram-se alguns deles, para maiores detalhes consultar [13].
Problema

Nome do Algoritmo

Autores

Ano

AS

Dorigo,et.al

1991

Caixeiro

Ant-Q

Gambardella, et.al.

1995

Viajante

ACS

Dorigo e Gambardella

1996

MMAS

Sttzle e Hoss

1997

ASrank

Bullnheimer

1997

AS-QAP

Maniezzo,et.al

1994

Atribuio

HAS-QAP

Gambardella

1997

Quadrtica

MMAS-QAP

Sttzle e Hoss

1998

ANTS-QAP

Maniezzo

1998

AS-FSP

Sttzle

1997

AS-VRP

Bullnheimer,et.al.

1999

ANT-NET

Di Caro e Dorigo

1997

HAS-SOP

Dorigo e Gambardella

2000

ANTS-FAP

Maniezzo,et.al.

1999

ACS-SCP

Hadji,et.al.

2000

Escalonamento
Roteamento
de
Veiculos
Roteamento de
rede orientada
conexo
Ordenao
Seqencial
Atribuio de
freqncia
Cobertura

Tabela 3.1: Algumas aplicaes de algoritmos ACO em problemas de otimizao combinatria

3.4 Algumas contribuies importantes e suas aplicaes

21

O ANTS (Approximated Non-Deterministic Tree Search) uma extenso proposta por


[21], do ACO original. Trata-se de uma hibridao entre o ACO e os algoritmos de busca
em rvores. As principais diferenas implementadas foram os parmetros de atratividade
e o mecanismo de incremento da trilha de feromnio.
O Max-Min foi proposto por [30]. Neste algoritmo foi implementada uma forma agressiva de incremento de feromnio, na qual apenas o melhor caminho obtido em um ciclo
teria sua trilha de feromnio acrescida. O Max-Min utiliza mtodos de busca local, utilizando para isso um mtodo chamado de correlao distncia-fitness.
A primeira alterao do AS para a resoluo do problema do caixeiro viajante foi
proposto por [9]. O algoritmo chamado ACS mostrou ser eficiente e verstil, obtendo uma
soluo para o problemas do caixeiro viajante, superior na mdia s solues encontradas
por redes neurais, algoritmos genticos e algoritmos de simulated annealing.
Finalmente em 1999, Dorigo e Sttzle consagraram a famlia de algoritmos ACO como
um conjunto de mtodos eficientes para a resoluo de vrios problemas de otimizao
combinatria NP -hard, tanto estticos quanto dinmicos, relacionando diversas implementaes, referncias e aplicaes eficientes.

Captulo 4
Algoritmo Gentico
Neste captulo so fornecidos alguns conceitos bsicos sobre os algoritmos genticos
(seo 4.1), bem como seus operadores, alguns mecanismos de seleo, e sua estrutura
bsica. A inteno aqui no de oferecer um texto completo sobre os algoritmos genticos,
mas apenas disponibilizar algumas informaes sobre os principais conceitos utilizados
nesta dissertao, de modo a facilitar a compreenso do mtodo proposto. Para um
estudo mais aprofundado sobre os algoritmos genticos, consultar [19] e [24].

4.1

Conceitos Bsicos

Os algoritmos genticos foram introduzidos nos anos 60 por John Holland e consolidado em 1975 com a finalidade de formalizar matematicamente e explicar os processos
de adaptao em sistemas naturais para, posteriormente, desenvolver sistemas artificiais
simulados em computador que retenham os mesmos mecanismos originais encontrados em
sistemas naturais.
A terminologia utilizada no desenvolvimento dos algoritmos genticos foi baseada na
teoria da evoluo natural e da gentica proposta por Darwin em 1859.
Uma das principais caractersticas dos AGs de no encontrarem uma nica soluo
(indivduo), mas uma populao deles, caracterizando-se como mtodo estocstico de
busca e seleo. Segundo [24], para percorrer este espao de busca necessrio manter
equilbrio entre dois pontos conflitantes:
Explotao: consiste no aproveitamento das melhores solues;
Explorao: consiste na explorao do espao de busca.
22

4.1 Conceitos Bsicos

23

Diversos estudos comprovaram que os algoritmos genticos mantm um equilbrio notvel nos pontos de contraste apresentados anteriormente e, portanto, conseguem fazer
o aproveitamento de melhores solues e explorao do espao de busca. Embora sejam
identificadas etapas no-determinsticas em seu desenvolvimento, os algoritmos genticos
no so mtodos de busca totalmente aleatrios, e sim mtodos que relacionam variaes
aleatrias com seleo polarizada pelos valores de adequao (fitness) atribudos a cada
indivduo.
Os AGs so capazes de desenvolver solues para problemas do mundo real, tais como
problemas de busca, de otimizao entre outros problemas complexos de engenharia. Embora eles no garantam eficincia total na obteno da soluo, geralmente garantem uma
boa aproximao. Eles utilizam os conceitos da evoluo biolgica, tais como: genes,
cromossomos, cruzamento, mutao e seleo. Desta forma as espcies evoluem aleatoriamente via operadores, estando sujeitas seleo natural. Assim os indivduos mais
adaptados sobrevivem e se reproduzem, propagando o seu material gentico para as prximas geraes.
A seguir, apresentamos uma descrio mais detalhada das partes constituintes de um
algoritmo gentico.
Codificao: A escolha da representao (codificao) dos cromossomos uma etapa
bastante importante na construo do algoritmo gentico, pois deve permitir uma representao da soluo completa do problema, sem dificultar a medida da funo de fitness
ou a aplicao dos operadores genticos. Os algoritmos genticos clssicos adotam a
codificao binria, isto , cada gene (bit) pode assumir valores 0 ou 1.
A motivao para o uso dessa codificao vem da teoria dos esquemas [19]. Holland
argumenta que seria benfico para o desempenho do algoritmo maximizar o paralelismo
implcito inerente ao algoritmo gentico. Entretanto esta representao no a mais adequada a diversos problemas de otimizao, tais como o problema do caixeiro viajante, pois
tem se mostrado ineficiente. Contudo outros tipos de codificao podem ser utilizadas,
como por exemplo, codificao inteira, real e mista.
Cromossomo: a estrutura nucleoprotica dentro da clula que armazena o DNA
dos seres vivos. Dentro de cada cromossomo, o DNA fica como uma fita enrolada em
espiral. Em algoritmos genticos, um cromossomo haplide (apenas uma cadeia de DNA
representa o cromossomo) geralmente corresponde a uma cadeia de bits que representa

4.1 Conceitos Bsicos

24

um candidato soluo do problema (vide Figura 4.1).

Figura 4.1: Exemplo de cromossomo com codificao binria.

Gene: Seqncia pequena de bases hidrogenadas capaz de definir uma caracterstica


do ser vivo. Em AGs, um parmetro codificado no cromossomo, ou um elemento do
vetor que representa o cromossomo.
Alelo: Representa uma das formas alternativas de um gene, nos AGs representa os
valores que o gene pode assumir. Por exemplo, um gene que representa o parmetro cor
de um objeto poderia ter o alelo de cor azul, preto, verde, etc.
Individuo: Formado pelo cromossomo e sua aptido.
Populao: Solues que representam os cromossomos, ou conjunto de indivduos
que evoluem por meio de operadores genticos.
Fentipo: a manifestao do gentipo no comportamento, fisiologia e morfologia
do indivduo, como um produto de sua interao com o ambiente.
Gentipo: Estrutura de dados que representa uma soluo candidata um determinado problema.
Funo de Avaliao (fitness): A funo de avaliao associa a cada indivduo da
populao uma medida de aptido. Ela deve ser escolhida de forma a medir o desempenho
de cada indivduo como soluo do problema.

4.1 Conceitos Bsicos

4.1.1

25

Operadores Genticos

Os operadores genticos freqentemente utilizados nos AGs clssicos so o crossover


e a mutao. Estes operadores representam o ncleo de um AG. O objetivo deles produzir novos cromossomos que possuam propriedades genticas superiores s encontradas
nos pais. A seguir apresentamos alguns desses operadores e seus principais aspectos.
Crossover : consiste na troca aleatria de material gentico entre dois cromossomos
(strings - sries) selecionados. Entretanto existem alguns tipos de crossover, tais como:
Crossover de um ponto: escolhe-se dois indivduos da populao (pais), seleciona-se
aleatoriamente o ponto de corte e efetua a troca de modo a gerar dois filhos (ver
figura 4.2).

Figura 4.2: Exemplo de crossover de 1 ponto

Crossover de dois pontos: seleciona-se dois indivduos da populao (pais), escolhese aleatoriamente dois pontos de cortes e efetua-se a troca de modo a gerar dois
filhos (ver figura 4.3).

Figura 4.3: Exemplo de crossover de 2 pontos

Crossover Uniforme: para cada gene no primeiro filho decidido (com alguma
probabilidade fixa p) qual pai vai contribuir com seu valor para aquela posio (ver
figura 4.4).

4.1 Conceitos Bsicos

26

Figura 4.4: Exemplo de crossover Uniforme

Crossover OX: escolhe-se dois indivduos pais da populao para gerar dois filhos.
Primeiro copia-se um trecho de um dos indivduos pais para um filho e o restante
do cromossomo do novo indivduo filho preenchido com as informaes do outro
indivduo pai, na mesma sequncia para evitar valores repetidos nos genes (figura
4.5).

Figura 4.5: Exemplo de crossover OX

Mutao: gerao de um novo indivduo (filho) partindo de um nico pai. O operador


de mutao modifica aleatoriamente um ou mais genes de um cromossomo. A probabilidade de ocorrncia de mutao em um gene normalmente pequena. A idia apenas de
criar uma variabilidade extra na populao, mas sem destruir o processo j obtido com a
busca. Existem alguns operadores de mutao, entretanto nos restringiremos apenas aos
operadores abaixo.
Mutao Inversiva: bastante utilizada e pode ser feita atravs de uma simples troca
de posio entre genes de um mesmo cromossomo. Este tipo de mutao, usando
codificao inteira, muito comum em problemas tradicionais como o problema do
Caixeiro Viajante (ver figura 4.6).
Mutao Uniforme: bastante utilizado em problemas com codificao em ponto
flutuante, assim como a mutao gaussiana. Este operador seleciona aleatoriamente um componente k {1, 2, ..., n} do cromossomo x = [x1 , ..., xp ], e altera
o gene na posio k, de tal forma que o indivduo criado aps mutao seja x =

4.1 Conceitos Bsicos

27

Figura 4.6: Exemplo de mutao inversiva

[x1 , ..., x0k , ...xp ], onde x0k um nmero aleatrio (com distribuio de probabilidade
uniforme) no intervalo [xkmin , xkmax ], onde xkmin e xkmax so, respectivamente, os
limites inferior e superior do gene na posio k.

4.1.2

Mecanismos de Seleo

O processo de seleo num AG pode ser definido como sendo uma escolha probabilstica
de cromossomos de uma populao tendo como base as suas aptides (fitness), ou seja,
quanto maior for a aptido de um indivduo, maior ser a chance dele ser selecionado para
a prxima gerao. Existem diferentes estratgias de seleo, abaixo citaremos algumas
dessas.
Roleta: muito utilizado no AG clssico, esse mtodo de seleo atribui a cada indivduo da populao uma probabilidade de passar para a prxima gerao proporcional
a seu valor de fitness, ou seja, quanto maior o fitness de um indivduo, maior a probabilidade dele passar para a prxima gerao. Entretanto, a grande desvantagem
desse mtodo a possibilidade da perda do melhor indivduo da populao atual,
ou seja, que ele no passe para a prxima gerao. A figura 4.7 mostra a idia desse
mecanismo de seleo.

Figura 4.7: Exemplo de seleo por Roleta

4.1 Conceitos Bsicos

28

Elitista: so selecionados uma porcentagem dos melhores indivduos da populao


atual.
Bi-classista: so selecionados os P % melhores indivduos e os (1 P )% piores
indivduos.
Ranking: esta estratgia utiliza as posies dos indivduos quando ordenados de
acordo com o fitness para determinar a probabilidade de seleo atravs de mapeamentos lineares ou no-lineares.
Torneio: duas solues so indicadas aleatoriamente e a melhor selecionada se
um nmero aleatrio r [0, 1] for menor que o parmetro p [0, 1] previamente
determinado; caso contrrio, a outra soluo escolhida.

4.1.3

Algoritmo Gentico

A estrutura de um AG baseada nos conceitos de reproduo celular e evoluo natural, podendo ser descrito em quatro elementos bsicos: uma populao de solues, uma
funo de desempenho, operadores genticos e processo de seleo. A estrutura de um
AG simples, facilmente encontrado na literatura, mostrada abaixo.
Algoritmo 4.1.3: Algoritmo Gentico Clssico
Incio
t = 0;
Inicializa_Populao (P, t);
Avalia (P, t);
enquanto t 6= d;

% critrio de parada no atingido;

faa
t = t + 1;
seleo_dos_pais (P, t);
reproduo (crossover) (P, t);
mutao (P, t);
avaliao (P, t)0 ;
Fim
Fim

Captulo 5
Algoritmo Hbrido
Neste captulo apresentado um algoritmo hbrido de sistema de colnia de formigas e
gentico para resolver o problema do caixeiro viajante. Esse novo algoritmo desenvolvido
neste trabalho denominamos de ACS+AG-TSP, pois ele trabalha conjuntamente com
as meta-heursticas de ACS e AG, com o objetivo de obter melhores resultados que os
algoritmos ACS e AG individualmente.
Inicialmente feita uma breve introduo justificando a utilizao das meta-heursticas
de ACS e AG, posteriormente apresentamos a estrutura do algoritmo hbrido e seu funcionamento.

5.1

Introduo

Modelos baseados em sistemas naturais objetivando resolver problemas de exploso


combinatria demonstrou ser uma estratgia bastante eficiente. A meta-heurstica de
Colnia de Formigas, que surgiu a partir da observao de que formigas artificiais so
capazes de encontrar o menor caminho entre o formigueiro e fonte de alimento, tm sido
aplicada com sucesso em diversos problemas, entre eles destacamos o problema do caixeiro
viajante [12], pois tem apresentado resultados bastante satisfatrios.
Os algoritmos genticos so mtodos heursticos, no especficos, utilizados principalmente na explorao do espao de solues de problemas de otimizao discreta. Eles so
geralmente aplicados em problemas cuja complexidade dificulta, ou at mesmo impede a
utilizao de mtodos exatos, j que so capazes de fornecer solues quase timas em
tempo de execuo aceitvel.

29

5.2 Implementao de um Algoritmo Hbrido ACS+AG-TSP

30

O problema do caixeiro viajante um problema que envolve uma busca em um espao


que cresce fatorialmente conforme se aumenta o nmero de vrtices do grafo, e portanto,
ele intratvel por meio de buscas exaustivas ou por mtodos exatos.
Baseando-se em tcnicas da computao natural, um algoritmo hbrido denominado
ACS+AG-TSP, que trabalha conjuntamente com as meta-heursticas de ACS e AG,
proposto para resolver o problema do caixeiro viajante, cujo objetivo explorar o espao
de busca de solues de maneira eficiente, visando encontrar boas solues de forma a
contornar a questo da complexidade.

5.2

Implementao de um Algoritmo Hbrido ACS+AGTSP

Dado G : (V, A) um grafo onde V um conjunto de vrtices e A um conjunto de


arcos ou arestas associados a um custo cij , deseja-se encontrar a rota de menor custo,
passando por cada vrtice uma nica vez.
Devido a caracterstica inerente a este tipo de problema, e considerando as similaridades e diferentes caractersticas entre o algoritmos ACS e o AG, foi desenvolvido um novo
algoritmo hbrido que combina a capacidade de busca das duas meta-heursticas, para
ser mais rpido, melhorar a capacidade de busca e tentar contornar a complexidade do
problema.
Na abordagem ACS+AG-TSP h um processo de cooperao entre os algoritmos ACS
e o AG. Esse processo se d atravs de uma migrao das solues encontradas. A
migrao fornece uma capacidade adicional de intensificao para ambos os algoritmos.
Neste aspecto, o ACS sustenta o AG, exportando solues potenciais para sua populao,
e o AG sustenta o ACS reforando alternativas de buscas potenciais para as formigas
artificiais.
A estratgia de migrao implementada a seguinte: sempre que o algoritmo de
formigas, o ACS, no consegue sair de um ponto timo local, ele exporta uma quantidade
pr-determinada de solues (melhores caminhos encontrados pelas formigas) encontradas
at o momento, para formar a populao inicial do algoritmo gentico. Neste momento
as iteraes do ACS so interrompidas e o AG tem incio para encontrar uma melhor
soluo que a do ACS. Uma vez que essa soluo encontrada, o algoritmo ACS adiciona
feromnio nesse novo caminho, reforando as alternativas de buscas para as formigas

5.2 Implementao de um Algoritmo Hbrido ACS+AG-TSP

31

artificiais.

5.2.1

Estrutura do Algoritmo Hbrido ACS+AG-TSP

O algoritmo hbrido proposto neste trabalho combina as meta-heursticas de colnia


de formigas e o algoritmo gentico. O algoritmo de formigas utilizado na implementao
do algoritmo hbrido apresentado no captulo 3, na subseo 3.3.1, e o algoritmo gentico
utilizado ser descrito abaixo:
Representao: Cada cromossomo representa um grafo e seus genes representam os
ns associados aos custos das arestas que ligam esses ns. No algoritmo gentico desenvolvido para o algoritmo hbrido, cada cromossomo Ci = (ci1 , ci2 , ci3 , ..., cin ) representa
um circuito (tour do caixeiro viajante) e n representa o nmero de cidades (Figura 5.1).

Figura 5.1: Exemplo de um Cromossomo representando um tour do TSP

Inicializao: A populao inicial do algoritmo gentico dada pelos caminhos percorridos pelas formigas no algoritmo ACS quando este no obtm melhorias.
Funo de Avaliao (Fitness): a funo de avaliao associa a cada indivduo da
populao uma medida de aptido. Ela deve ser escolhida de forma a medir o desempenho
de cada indivduo como soluo do problema. Neste algoritmo adotou-se um fitness igual
ao custo do circuito, ou seja, o custo de cada viagem.
f itness(Ci ) =

n
X

ci

i=1

Variabilidade Gentica: Segundo Michalewicz (1996), a variabilidade de uma populao cai conforme o fitness aumenta. Isso ocorre porque a chance dos indivduos gerarem
descendentes maior para aqueles que possuem fitness maiores. Com isso, o algoritmo
utiliza os seguintes mecanismos para injetar variabilidade na populao:

5.2 Implementao de um Algoritmo Hbrido ACS+AG-TSP

32

Seleo Bi-Classista: preservada P% dos melhores indivduos e (100 - P%) dos piores
indivduos da populao.
Imigrao: em cada gerao, injetada uma porcentagem de novos indivduos, gerados
de forma aleatria.
Crossover OX: O crossover feito escolhendo-se dois indivduos pais #P 1 e #P 2
da populao para gerar dois indivduos filhos #F 1 e #F 2. Primeiro sorteado aleatoriamente um trecho de cada um dos pais; depois copiado o trecho do pai #P 1 para o filho
#F 2 e o do pai #P 2 para o filho #F 1; o restante do cromossomo do filho #F 1 e #F 2
preenchido com as informaes do outro pai #P 2 e #P 1 respectivamente, na mesma
seqncia para evitar valores repetidos nos genes (Figura 5.2).

Figura 5.2: Exemplo de crossover entre dois pais #P 1 e #P 2

Mutao Inversiva: O operador de mutao utilizado foi a mutao inversiva, onde


escolhido aleatoriamente um indivduo da populao, seleciona dois pontos aleatrios
do cromossomo e seus genes so permutados (Figura 5.3).

Figura 5.3: Exemplo de mutao em um tour do TSP

5.2 Implementao de um Algoritmo Hbrido ACS+AG-TSP

5.2.2

33

Algoritmo ACS+AG-TSP

Algoritmo 3.2.1: Algoritmo Hbrido ACS+AG-TSP


pop Populao recebida pelo ACS;

L* menor distncia encontrada pelo ACS

cgen fitness do AG

S* melhor soluo (ciclo) encontrada

Inicializao 1: Algoritmo ACS


Para cada aresta (i, j) do grafo, estabelea um nvel inicial de feromnio ij ;
t 1;
enquanto t iterao, faa
para cada formiga k, faa
escolhe-se um n aleatrio para iniciar o percurso.
construa uma soluo aplicando uma regra construtiva probabilstica influenciada
pelo nvel de feromnio das arestas e uma mtrica heurstica de afinidade aresta;
aps ter completado o ciclo, atualize o feromnio motivado pela evaporao;
calcule a distncia Lk (t) do caminho.
se Lk (t) < L ento S Sk (t) e L Lk (t)
atualize o nvel de feromnio de acordo com uma regra de atualizao;
fim-para
se L no melhorar por n (estagnao) iterao ento,
Inicializao 2: Algoritmo Gentico
pop S;
i 1;
enquanto i gerao ou L cgen, faa
pop seleo(pop);
pop crossover (pop);
pop mutao (pop);
calcula fitness de pop;
atualiza pop;
i i + 1;
se L > cgen, pare
atualize o nvel de feromnio de acordo com uma regra de atualizao;
fim-enquanto
fim-enquanto
t t+1;
Retorne a melhor soluo.

Captulo 6
Experimentos Computacionais
Neste captulo so apresentados e discutidos os resultados obtidos com a aplicao dos
algoritmos de colnia de formigas e genticos no problema do caixeiro viajante. Foram
utilizados alguns grafos para avaliar o desempenho do algoritmo gentico, do algoritmo
de formigas e do algoritmo hbrido proposto, o ACS+AG-TSP.
Para cada grafo foram realizados 10 experimentos, obtendo o melhor valor dentre os
experimentos, sua mdia e o pior valor. Todas as instncias utilizadas foram retiradas da
base de dados TSPLIB 1 , que um repertrio pblico de instncias para o problema do
caixeiro viajante na Internet onde, alm das instncias, consta tambm o melhor valor
conhecido para algumas delas.
Todos os grafos utilizados nos testes so completos e simtricos, e o tamanho das
instncias variam de 51 a 226 cidades. Na tabela 6.1 encontram-se as descries dos
problemas simtricos do caixeiro viajante utilizados neste trabalho.
Devido ao fato do algoritmo hbrido ACS+AG-TSP trabalhar com dois algoritmos
ACS e AG, ele consome mais tempo de processamento que os algoritmos ACS e AG para
realizar cada experimento, mediante a igualdade dos parmetros. Desta forma, a fim
de obter uma comparao mais precisa, cada experimento do ACS e do AG foi testado
utilizando o mesmo tempo de processamento consumido pelo ACS+AG-TSP. Por meio
de grficos gerados para cada instncia possvel avaliar o desempenho do algoritmo
hbrido proposto e saber os melhores resultados encontrados ao longo dos experimentos.
No Apndice A encontram-se alguns grafos obtidos pelos algoritmos.
Para a implementao dos algoritmos e realizao dos testes foi utilizada a ferramenta
1

http://www.iwr.uni-heidelberg.de/groups/comopt/soft/TSPLIB95/TSPLIB.html

34

6.1 Parmetros do Algoritmo Hbrido ACS+AG-TSP

35

MatLabr 7.0 na seguinte plataforma: Processador Pentium IV com 3.0Ghz e 1024 de


memria RAM.

Instncia

Nmero de cidades

Descrio do problema

eil51

51

problema de 51 cidades (Christofides/Eilon)

brazil58

58

problema de 58 cidades no Brazil (Ferreira)

eil76

76

problema de 76 cidades (Christofides/Eilon)

kroA100

100

problema de 100 cidades A (Krolak/Felts/Nelson)

bier127

127

problema de 127 cidades em Augsburg (Reinelt)

pr226

226

problema de 226 cidades (Padberg/Rinaldi)

Tabela 6.1: Problemas simtricos do Caixeiro Viajante utilizados neste trabalho

6.1

Parmetros do Algoritmo Hbrido ACS+AG-TSP

Os seguintes parmetros foram calibrados e utilizados para todos os experimentos:


1. ACS
Nmero de formigas: 20;
= 1, = 2, = 0, 1, q0 = 0, 9;
Critrio de parada: nmero de iteraes ou encontrar a melhor soluo conhecida;
2. AG
Tamanho da populao de cromossomos: 60;
Taxa de crossover: 60%;
Taxa de mutao: 5%;
Critrio de parada: nmero de geraes ou encontrar melhor soluo que a encontrada pelo ACS;

6.2 Resultados

6.2
6.2.1

36

Resultados
Instncia eil51

O grafo eil51 representa todas as conexes entre as 51 cidades de Christofides/Eilon,


com as respectivas distncias geogrficas entre elas. Este um grafo completo com 51 ns
e 1275 arestas, que possui em torno de 3,04 x 1064 solues possveis.
Para avaliar o desempenho do algoritmo hbrido proposto neste trabalho, foi necessrio
implementar e anlisar os resultados (Tabela 6.2) obtidos pelos algoritmos ACS e o AG.
Os resultados obtidos pelas heursticas esto exibidos na Tabela 6.2. Em negrito
so indicados os resultados dos algoritmos que atingiram a melhor soluo conhecida e,
em parnteses, encontra-se o erro encontrado por cada algoritmo. A convergncia do
algoritmo hbrido e a comparao do desempenho dos melhores resultados obtidos pelos
algoritmos ACS+AG-TSP, ACS e AG, esto exibidos respectivamente nos grficos das
Figuras 6.1 e 6.2.
Algoritmo

Melhor sol. Melhor sol.


conhecida

426(0,0%)

ACS
AG

encontrada

426

ACS+AG-TSP

429(0,7%)
426(0,0%)

Mdia das

Pior sol.

solues

encontrada

426,8(0,18%) 430(0,94%)
435(2,11%)

440(3,28%)

426,4(0,09%) 427(0,23%)

Tabela 6.2: Resultados obtidos pelo ACS, AG e ACS+AG-TSP para o grafo eil51

Tanto o algoritmo hbrido quanto o algoritmo de formigas conseguiram encontrar a


melhor soluo conhecida, enquanto que o algoritmo gentico obteve uma soluo com erro
de 0,7% da soluo tima. Entretanto, o algoritmo ACS+AG-TSP obteve um desempenho
melhor que os algoritmos ACS e AG, pois sua mdia das solues est prximo da soluo
tima; isso pode ser observado tambm nos erros mdios dos algoritmos, conforme mostra
a Tabela 6.2. A mdia de grande importncia na anlise dos resultados pois mostra a
capacidade geral do algoritmo, quanto mais prximo este nmero estiver do valor timo
melhor a performance do algoritmo.
Esta diferena nos resultados dos algoritmos pode ser explicada pelo fato do algoritmo
ACS+AG-TSP trabalhar com um processo de cooperao entre os algoritmos ACS e AG,

6.2 Resultados

37

Figura 6.1: Grfico de Convergncia obtido pelo ACS+AG-TSP para o grafo eil51

Figura 6.2: Grfico de comparao do desempenho dos melhores resultados obtidos pelo
ACS+AG-TSP, ACS e AG para a instncia eil51

6.2 Resultados

38

o que faz com que ele consiga manter a diversidade dos caminhos, permitindo-lhe obter
melhor desempenho nos problemas.
Quanto a convergncia do algoritmo hbrido ACS+AG-TSP, a Figura 6.1 mostra a
evoluo do custo do melhor indivduo, evidenciando o processo de cooperao entre os
algoritmos ACS e AG, e a contribuio do algoritmo gentico no algoritmo de formigas,
ajudando-o a sair de mnimos locais.
Na Figura 6.2 encontram-se os resultados detalhados de todas as rodadas realizadas
com essa instncia. Nela fica evidente a superioridade do algoritmo proposto ao longo dos
experimentos, pois ele conseguiu encontrar solues melhores que a dos outros algoritmos
em 90% dos resultados. Os resultados da tcnica proposta neste trabalho mostraram-se
superiores aos algoritmos ACS e AG quando aplicados individualmente.
O tempo mdio consumido em cada rodada para os algoritmos foi de 25 segundos.

6.2.2

Instncia brazil58

Este grafo foi retirado da base de dados do TSPLIB e representa todas as possveis
conexes entre as 58 cidades no Brazil - Ferreira, com suas respectivas distncias geogrficas. Assim como todos os outros grafos aqui estudados, este um grafo completo
formado por 58 cidades e 1653 arestas, que possui em torno de 4, 05 x 1076 candidatos a
soluo. A principal caracterstica deste grafo a existncia de poucos pontos de mnimos locais. Esse fato influncia diretamente na qualidade das solues e favorvel ao
algoritmo gentico.
Os resultados obtidos com esta instncia esto exibidos na Tabela 6.3
Algoritmo

Melhor sol.

Melhor sol.

Mdia das

Pior sol.

conhecida

encontrada

solues

encontrada

25395(0,0%) 25517(0,48%) 25643(0,97%)

ACS
AG
ACS+AG-TSP

25395

25395(0,0%) 25578(0,78%) 25966(2,24%)


25395(0,0%) 25398(0,01%) 25405(0,04%)

Tabela 6.3: Resultados obtidos pelo ACS, AG e ACS+AG-TSP para o grafo brazil58

Ambos os algoritmos conseguiram encontrar boas solues, pois todos encontraram a melhor soluo conhecida, entretanto, por uma pequena diferena, o ACS+AG-TSP obteve

6.2 Resultados

39

um melhor desempenho. Enquanto ele conseguiu encontrar a mdia das solues com um
erro mdio bem pequeno, de 0, 01%, o ACS encontrou uma mdia com erro de 0, 48% e o
AG com 0, 78%.

Figura 6.3: Grfico de Convergncia obtido pelo ACS+AG-TSP para o grafo brazil58

Em relao a convergncia do algoritmo hbrido (Figura 6.3) podemos observar que ele
conseguiu encontrar a soluo tima com menos avaliaes, apesar do grafo ser um pouco
maior que o anterior. O tempo mdio consumido pelo algoritmo para realizar cada experimento foi de 10 segundos. Neste tempo, o algoritmo hbrido ACS+AG-TSP executou
500 geraes do AG e 300 iteraes do ACS. Na figura 6.3 temos uma melhor visualizao da convergncia do algoritmo para esta instncia (cabe ressaltar que este grfico foi
escolhido, pois nele temos uma melhor visualizao da convergncia do algoritmo para
esta instncia, apesar de dentre os 10 experimentos obtivemos convergncias bem mais
rpidas que a apresentada).
Na Figura 6.4, possvel observar que a soluo tima encontrada vrias vezes
pelos algoritmos ACS+AG-TSP, ACS e AG, entretanto possvel notar que o algoritmo
gentico encontrou alguns valores distantes da soluo tima e que o algoritmo ACS+AGTSP obteve melhor desempenho no conjunto dos 10 experimentos.

6.2 Resultados

40

Figura 6.4: Grfico de comparao do desempenho dos melhores resultados obtidos pelo
ACS+AG-TSP, ACS e AG para a instncia brazil58

6.2.3

Instncia eil76

A instncia eil76 um grafo completo com 76 ns e 2850 arestas e tambm foi retirada
da base de dados TSPLIB. Ela representa todas as ligaes possveis entre as 76 cidades
de Christofides/Eilon e possui em torno de 2, 48 x 10109 solues possveis. Os resultados
obtidos pelos algoritmos esto exibidos na Tabela 6.4.

Algoritmo

Melhor sol.

Melhor sol.

Mdia das

Pior sol.

conhecida

encontrada

solues

encontrada

ACS
AG
ACS+AG-TSP

543(0,9%)
538

547,3(1,72%) 549(2,04%)

551(2,42%) 564,7(4,96%)

573(6,5%)

538(0,0%)

543(0,9%)

540(0,37%)

Tabela 6.4: Resultados obtidos pelo ACS, AG e ACS+AG-TSP para o grafo Eil76

Pela anlise da Tabela 6.4 possvel concluir que, para os experimentos realizados
com este grafo, o algoritmo ACS+AG-TSP obteve as melhores solues, encontrando a

6.2 Resultados

41

soluo tima e erro mdio das solues superior aos algoritmos ACS e AG.
A convergncia do algoritmo hbrido e o comportamento das melhores solues esto
exibidos nos grficos das Figuras 6.5 e 6.6, respectivamente.

Figura 6.5: Grfico de Convergncia obtido pelo ACS+AG-TSP para o grafo Eil76

No grfico da Figura 6.5 vemos que o algoritmo de formigas conseguiu convergir mais
rpido para a soluo tima e que a soluo tima foi encontrada pelo algoritmo gentico.
Em comparao com os melhores resultados por experimento, ficou evidente no histograma da Figura 6.6, que novamente o algoritmo proposto neste trabalho conseguiu
encontrar melhores solues que os algoritmos ACS e AG quando aplicados individualmente, pois ele conseguiu encontrar a soluo tima e um valor mdio bem mais prximo
da soluo que os outros dois algoritmos.
O tempo mdio consumido em cada rodada pelos algoritmos foi de 1 minuto e 35
segundos. Neste tempo, o ACS executou 300 iteraes e o AG 600 geraes no algoritmo
ACS+AG-TSP.

6.2 Resultados

42

Figura 6.6: Grfico de comparao do desempenho dos melhores resultados obtidos pelo
ACS+AG-TSP, ACS e AG para a instncia Eil76

6.2.4

Instncia kroA100

Tambm retirado do TSPLIB, este um grafo completo composto de 100 ns e 4950


arestas. Ele possui em torno de 9, 33 x 10155 solues possveis.
Na Tabela 6.5 esto os resultados obtidos para esta instncia. Fazendo uma anlise
desses resultados pode-se perceber que ambos os algoritmos (ACS, AG e ACS+AG-TSP)
conseguiram boas solues, encontrando valores bem prximos do valor timo com erros
abaixo de 1%. Entretanto apenas o algoritmo hbrido conseguiu encontrar a melhor
soluo conhecida, mostrando-se ser mais eficiente.

Algoritmo

Melhor sol.

Melhor sol.

Mdia das

Pior sol.

conhecida

encontrada

solues

encontrada

ACS
AG
ACS+AG-TSP

21320(0,17%) 21471(0,88%) 21597(1,48%)


21282

21395(0,53%) 21679(1,86%) 21970(3,23%)


21282(0,0%)

21291(0,04%) 21307(0,12%)

Tabela 6.5: Resultados obtidos pelo ACS, AG e ACS+AG-TSP para o grafo kroA100

6.2 Resultados

43

Figura 6.7: Grfico de Convergncia obtido pelo ACS+AG-TSP para o grafo kroA100

Figura 6.8: Grfico de comparao do desempenho dos melhores resultados obtidos pelo
ACS+AG-TSP, ACS e AG para a instncia kroA100

6.2 Resultados

44

Em relao a convergncia do algoritmo hbrido (Figura 6.7), ficou evidente a cooperao entre os algoritmos ACS e AG. A melhor soluo conhecida foi encontrada pelo
algoritmo de formigas.
No grfico da Figura 6.8 encontram-se os resultados do desempenho dos algoritmos nas
10 rodadas. Nele podemos ver que os melhores resultados dentre todos os testes foram
do algoritmo hbrido, encontrando o melhor valor conhecido vrias vezes ao longo dos
experimentos, e que os resultados do AG ao longo das rodadas foram os piores.
O tempo consumido em cada rodada, para cada um dos algoritmos, foi em mdia de
4 minutos e 40 segundos. Neste tempo o algoritmo ACS+AG-TSP executou 500 geraes
do AG e 300 iteraes do ACS.

6.2.5

Instncia bier127

O grafo bier127 um grafo completo com 127 ns representando todas as conexes da


regio de Augsburg na Alemanha. Ele possui em torno de 2,37 x 10211 possveis solues.
Na 6.9 (a) e (b) encontram-se os grficos de convergncia dos algoritmos ACS e
ACS+AG-TSP, respectivamente. Nele percebemos que o algoritmo ACS+AG-TSP obteve um desempenho melhor que o algoritmo ACS, conseguindo encontrar a soluo tima,
enquanto que o algoritmo ACS apresentou dificuldades de convergncia.
Em relao aos resultados (Tabela 6.6), o mtodo proposto foi mais eficiente e conseguiu encontrar bons resultados. O algoritmo ACS obteve resultados melhores que o
AG, j que o melhor valor encontrado pelo ACS foi com erro de 0,78% do valor timo,
enquanto que no AG esse erro foi superior a 2%. A superioridade nos valores encontrados
pelo algoritmo hbrido pode ser visto na mdia das solues e at mesmo no pior valor encontrado pelos algoritmos, pois os erros do algoritmo ACS+AG-TSP so todos inferiores
a 1%.

Algoritmo

Melhor sol.

Melhor sol.

Mdia das

Pior sol.

conhecida

encontrada

solues

encontrada

119206(0,78%)

120418,8(1,8%)

121332(2,58%)

ACS
AG
ACS+AG-TSP

118282

120884(2,19%) 124816,7(5,52%) 126240(6,72%)


118282(0,0%)

118958(0,57%)

119458(0,99%)

Tabela 6.6: Resultados obtidos pelo ACS, AG e ACS+AG-TSP para o grafo bier127

6.2 Resultados

45

Figura 6.9: (a) Grfico de Convergncia obtido pelo algoritmo ACS e (b) pelo algoritmo
ACS+AG-TSP para o grafo bier127

Figura 6.10: Grfico de comparao do desempenho dos melhores resultados obtidos pelo
ACS+AG-TSP, ACS e AG para a instncia bier127

6.2 Resultados

46

Em relao a Figura 6.9 (b), percebe-se que houve um processo de cooperao grande
entre os algoritmos, chegando rapidamente a soluo tima. Na Figura 6.10 encontram-se
os melhores valores encontrados pelos algoritmos ao longo dos experimentos. Os melhores
valores encontrados em todos os experimentos foram os do algoritmo ACS+AG-TSP.
Por se tratar de um grafo maior, o tempo mdio consumido para a realizao de cada
experimento foi de aproximadamente 19 minutos. Nesse tempo, enquanto que o ACS
realizou 700 iteraes o AG realizou 600 geraes no algoritmo proposto (ACS+AG-TSP).

6.2.6

Instncia pr226

O grafo pr226, tambm disponvel no repertrio TSPLIB, representa todas as ligaes


possveis entre 226 cidades de (Padberg/Rinaldi). Este um grafo completo, bem maior
que os grafos anteriores, que possui 25425 arestas e em torno de 1,25 x 10433 solues
possveis. Os resultados obtidos com esta instncia esto exibidos na Tabela 6.7.
Algoritmo

Melhor sol.

Melhor sol.

Mdia das

Pior sol.

conhecida

encontrada

solues

encontrada

81243(1,08%)

81997(2,02%)

82490(2,63%)

ACS
AG

80369

ACS+AG-TSP

81904(1,9%)

83680,5(4,12%) 84782(5,49%)

80369(0,0%)

80505,9(0,17%) 80644(0,34%)

Tabela 6.7: Resultados obtidos pelo ACS, AG e ACS+AG-TSP para o grafo pr226
Analisando os resultados da Tabela 6.7, verifica-se que mais uma vez os resultados
encontrados pelo algoritmo ACS+AG-TSP foram melhores que os dos outros dois algoritmos, comprovando a eficincia e superioridade do mtodo proposto.
Em relao a convergncia do algoritmo hbrido para o grafo pr226, percebe-se na
Figura 6.11 que a convergncia foi rpida e que houve uma cooperao grande entre os
algoritmos. O tempo mdio consumido pelos algoritmos para realizar cada experimento
foi de 21 minutos. Nesse tempo, o algoritmo ACS+AG-TSP executou 700 iteraes do
ACS e 600 geraes do AG.
Na Figura 6.12 esto os erros encontrados pelo algoritmo ACS+AG-TSP, em todos os
grafos utilizados neste trabalho.
Os erros apresentados na Figura 6.12 mostram resultados satisfatrios para os problemas utilizados, pois os erros mdios so todos inferiores a 2%.

6.2 Resultados

47

Figura 6.11: Grfico de Convergncia obtido pelo ACS+AG-TSP para o grafo pr226

Figura 6.12: Erros mdios encontrados pelo algoritmo ACS+AG-TSP

Captulo 7
Extenso do Ant Colony System para
o Problema do Caixeiro Viajante com
Parmetros Incertos
Neste captulo apresentamos uma extenso do algoritmo de formigas para um grafo
com estrutura crisp e parmetros representados por nmeros fuzzy. Inicialmente so
fornecidas algumas noes bsicas da teoria fuzzy e da teoria da possibilidade. Para
maiores esclarecimentos sobre a teoria fuzzy consultar [14] e [27].
No captulo 3 foi feito um estudo do algoritmo ACS com parmetros bem definidos.
Neste captulo, o principal objetivo fazer um estudo sobre o algoritmo ACS com parmetros incertos, j que em situaes reais comum encontrarmos incertezas associadas s
informaes dos problemas.
Ao trabalhar com informaes incertas, uma unidade deixa de ser representada por
um nmero e passa a ser representada por um conjunto de valores. Considere, por exemplo, um grafo G(N,A), onde N o conjunto de vrtices representando as cidades, A
o conjunto de arcos que conectam cada par de cidades com custos entre a cidade (n)
i e a cidade j dado pelo tempo de translado que uma pessoa leva para atravessar essas
cidades. Esse tempo pode ser considerado um parmetro sujeito a incertezas, devido ao
congestionamento, condies da rodovia, condies climticas e at mesmo disposio do
motorista. Desta forma, o uso da teoria clssica torna-se invivel pela sua ineficincia no
tratamento de informaes imprecisas. Entretanto, essas incertezas podem ser modeladas
e tratadas de uma forma mais robusta utilizando a teoria dos conjuntos nebulosos ([33],

48

7.1 Conjuntos fuzzy

49

[14] e [27]).
Em problemas de grafos, as incertezas podem estar presentes em diversos nveis: na
estrutura do grafo (quando no possvel determinar com certeza se uma aresta est
conectada a um n, ou at mesmo, se aquela aresta existe), nos parmetros (quando no
se sabe exatamente quanto vale o peso das arestas) e os dois casos ocorrendo ao mesmo
tempo.
Neste captulo vamos analisar e propor um algoritmo do tipo ACS-Fuzzy aplicando-o
em alguns exemplos do TSP.

7.1

Conjuntos fuzzy

Um conjunto fuzzy pode ser visto como uma generalizao de um conjunto clssico,
possibilitando atribuir um grau de pertinncia para cada elemento, e portanto, a funo
de pertinncia do conjunto fuzzy mapeia cada elemento do universo de discurso a seu
espao de escala.
(
A (x) =

1, se x A
0, se x
/ A

(7.1)

Um subconjunto fuzzy A em X definido por uma funo de pertinncia A que


associa cada ponto de X a um nmero real no intervalo [0, 1], com o valor de A em x
representando o grau de pertinncia de x em A. Desta forma, quanto mais prximo o
valor de A (x) estiver da unidade, maior ser o grau de pertinncia de x em A (Figura
7.1).
Definio 7.1 Um conjunto fuzzy A dito ser normal se sua funo de pertinncia (A )
possui pelo menos um valor tal que A (x) = 1. Caso contrrio o conjunto denominado
subnormal.
Definio 7.2 O suporte de um conjunto fuzzy A, denotado por Supp(A), formado
pelos elementos que possuem valores de pertinncia no nulos, dados por:
Supp(A) = {x X | A (x) > 0}
Definio 7.3 Um conjunto fuzzy dito convexo se sua funo de pertinncia tal que

7.2 Nmeros fuzzy

50

A [hx1 + (1 h)x2 ] hA (x1 ) + (h 1)A (x2 ),


onde quaisquer x1 , x2 Supp(A) e h [0, 1].

7.2

Nmeros fuzzy

A lgica fuzzy um meio de aproximar a preciso matemtica clssica e a impreciso


do mundo real. A teoria fuzzy consegue manipular e operar quantidades exatas e inexatas
(quantificadores atravs de valores lingsticos). Existe uma grande variedade de tipos
de nmeros fuzzy [27]. Entretanto, neste trabalho, vamos tratar apenas nmeros fuzzy
triangular.
Definio 7.4 Um nmero fuzzy A um conjunto fuzzy no espao dos nmeros reais R
com funo de pertinncia A : R [0, 1].
Exemplo 7.5 Um nmero fuzzy triangular, dado por:
a = [ai , am , as ]

onde, am o valor modal do nmero fuzzy triangular (valor mximo da funo de pertinncia associada), ai o valor inferior e as o valor superior. Sua funo de pertinncia
definida de acordo com a Equao 7.2.

A (x) =

xai
,
am ai
as x
,
as am

0,

se x [ai , am ]
se x [am , as ]

(7.2)

caso contrrio

A representao grfica de um nmero fuzzy triangular do tipo a = [ai , am , as ]


apresentada pela Figura 7.1.

7.2.1

Operaes com nmeros fuzzy triangulares

Para as operaes definidas abaixo, considere a = [ai , am , as ] e b = [bi , bm , bs ] nmeros


fuzzy quaisquer:

7.3 Teoria da Possibilidade

51

Figura 7.1: Nmero fuzzy triangular

Adio:

a b = [ai + bi , am + bm , as + bs ];

Subtrao:

a b = [ai bs , am bm , as bi ];

Multiplicao:
Diviso:
Inversa:

7.3

a
b

ab = [M in{ai bi , ai bs , as bi , as bs }, am bm , M ax{ai bi , ai bs , as bi , as bs }];

m
, M ax{ abii , absi , abis , abss }];
= [M in{ abii , absi , abis , abss }, abm

a1 = [M in{ a1i , a1s }, a1m , M ax{ a1i , a1s }], (note que

a
b

= a.b1 )

Teoria da Possibilidade

Seja um grafo G(N, M ), no qual N denota o conjunto de ns, e M o conjunto de arcos


que tm associado um custo representado por um nmero fuzzy e
cij Rn . Sejam dois
nmeros fuzzy t1 e t2 , t1 6= t2 . Podemos dizer que t1 tem um grau de possibilidade de ser
menor do que t2 dado por [32]:
w
e = P oss(

e
cij

ijt1

e
cij ) = sup min {t1 (u), t2 (v)}

(7.3)

(uv)

ijt2

Para encontrar uma soluo fuzzy utilizando a teoria de possibilidade, necessario


encontrar todas as solues que possuem algum grau de possibilidade de ser a soluo
tima e comparar estas solues para obter o grau de possibilidade de cada uma [25]. O
grau de possibilidade dado pela frmula:
Dt = min{P oss(
tk t

ijtk

cij

X
ijt

cij )}

(7.4)

7.3 Teoria da Possibilidade

52

Isto torna o problema de difcil soluo, pois alm de ter que enumerar todas as
solues, a comparao entre elas torna o problema N P - difcil.
Exemplo 7.6 Considerando dois nmeros fuzzy a
e b, com funes de pertinncia a (x)
a, b) apresentada na Figura 7.3 [4]. Sendo
e (x) (Figura 7.2), a possibilidade P oss(
b

definida por P oss(b a


) = sup {min{a (x), b (x)}}
(xX)

Figura 7.2: Funes de pertinncia a (x) e b (x)

Figura 7.3: Possibilidade P oss(


a, b)
Para se responder a pergunta de qual o maior ou menor nmero entre vrios nmeros
fuzzy preciso avaliar o grau de possibilidade do nmero fuzzy ser maior ou menor que
outro nmero fuzzy. Para verificar se a b, devemos analisar a Equao 7.3.
Da pode-se concluir, pela Equao 7.5, que para a = [ai , am , as ] e b = [bi , bm , bs ]:

P oss(a b) = 1,

se e somente se am bm

P oss(a b) = 0, se as < bi

P oss(b a) = hgt(a b)

(7.5)

7.4 Estrutura do Algoritmo ACS com Incertezas

53

De acordo com a Equao 7.5, temos a seguinte definio:


Definio 7.7 hgt(a b) representa a altura da interseco dos nmeros fuzzy a e b.
Para compararmos os nmeros a e b, preciso calcular a P oss(a b) e a P oss(b a).

7.4

Estrutura do Algoritmo ACS com Incertezas

Seja G = (N, A) um grafo conexo com m ns e n arestas com custo fuzzy associado
cada aresta (ai , am , as ). O problema consiste em encontrar um caminho de menor custo
entre todos os ns (Figura 7.4).

Figura 7.4: Exemplo de um problema do TSP com custos fuzzy

Neste grafo com parmetros fuzzy (Figura 7.4 (a)) foi obtido um caminho mnimo
do TSP (Figura 7.4 (b)) com custo fuzzy igual a (74, 84, 94) que est associado a funo
de pertinncia representado pela Figura 7.5. Como pode ser observado na funo de
pertinncia da Figura 7.5, os nmeros fuzzy esto representados por uma funo triangular
(ver Exemplo 7.5 na seo 7.2) e podem ser definidos por nmeros triangulares fuzzy do
tipo (ai , am , as ), onde ai representa o custo inferior, am o custo modal e as o custo superior.
Nossa proposta aqui trabalhar com a teoria da possibilidade [34] para tratar a soluo
do problema do caixeiro viajante com o algoritmo de formigas. O que difere o algoritmo
ACS do ACS-Fuzzy basicamente a forma de escolha do prximo passo da formiga, pois
no ACS esse passo dado de acordo com as frmulas determinsticas e probabilsticas
(ver equaes 3.2, 3.3 na seo 3.3) e no ACS-Fuzzy, alm dessas frmulas, utilizamos
o conceito da teoria da possibilidade (seo 7.3). Para entendermos melhor, considere o
exemplo abaixo:

7.4 Estrutura do Algoritmo ACS com Incertezas

54

Figura 7.5: Funo de pertinncia associado ao custo mnimo do grafo da Figura 7.4

Exemplo 7.8 Suponha que uma formiga iniciou o percurso no n 2 (Figura 7.6). Qual
ser o prximo passo a ser dado pela formiga?
Como esse movimento deve levar em conta a quantidade de feromnio existente na
aresta e seu comprimento, j que a preferncia da formiga por um determinado caminho
maior para os caminhos com maior nvel de feromnio e com menor distncia, devemos
calcular esses nveis e decidir qual ser o prximo passo.
Supondo que calculamos as probabilidades (nveis) dos ns (de acordo com a equao
3.3), a maior foi a do n ]1 (Figura 7.6).

Figura 7.6: Probabilidade dos ns

Associando essas probabilidades a uma funo de pertinncia (Figura 7.7), temos que:
com base na observao da Figura 7.7, percebemos que no existe possibilidade do n (5)
ser maior que a soluo encontrada pelo n ]1, pois o maior valor possvel que o n (5)
pode assumir (limitante superior) menor que o menor valor que ]1 pode obter (limitante

7.5 Resultados

55

inferior). J para os ns (3) e (4) existem possibilidades de serem maiores que o valor
encontrado, pois existe pelo menos um valor em (3) e em (4) que podem ser maiores ou
iguais ao valor limitante inferior de ]1. Podemos dizer ento que existem vrios graus de
possibilidade de um n pertencer soluo do problema. Desta forma, de acordo com
um limitante 0 1, o n que obtiver maior grau de pertinncia e que o valor da
pertinncia for maior que esse limitante, ser o n escolhido para o prximo passo. Nesse
exemplo seria o n (3). Caso contrrio o prximo passo seria para o n #1 (n com maior
valor de probabilidade).

Figura 7.7: Comparao das probabilidades fuzzy

7.5

Resultados

Aqui so apresentados alguns resultado obtidos com o algoritmo ACS-Fuzzy. Para realizao dos testes foram utilizadas duas instncias retiradas da base de dados do TSPLIB.
Para cada grafo foram realizados 10 experimentos, sendo que em cada um deles obtivemos como resultado a soluo composta pelo menor caminho e maior Grau de Possibilidade.
Os testes tambm foram realizados em MatLabr 7.0 com a plataforma: Processador
Pentium IV com 3.0Ghz e 1024 de memria RAM.
Os seguintes parmetros foram ajustados e utilizados nos experimentos:
- Numero de Iteraes: 200;

7.5 Resultados

56

- Nmero de formigas: 20;


- = 2, = 1, q0 = 0, 9, = 0, 1 e = 0, 2.

7.5.1

Instncia eil51

Este um grafo completo que representa todas as conexes entre 51 cidades de Christofides/Eilon. As distncias entre elas so representadas por nmeros triangulares fuzzy
do tipo (ai , am , as ), sendo que ai representa o limitante inferior com desvio de 51 unidades
para menos, am o valor modal da distncia e as o limitante superior com desvio de 51
unidades a mais do valor modal. Os resultados obtidos pelo algoritmo esto exibidos na
Tabela 7.1.
Algoritmo

Nmero de

Grau de

Experimentos

Possibilidade

0,9706

[378 429 480]

0,9804

[377 428 479]

0,9510

[380 431 482]

0,9902

[376 427 478]

1,0000

[375 426 477]

0,9608

[379 430 481]

0,9706

[378 429 480]

0,9510

[380 431 482]

0,9706

[378 429 480]

10

0,9706

[378 429 480]

ACS-Fuzzy

Custo Fuzzy

Tabela 7.1: Resultados obtidos pelo ACS-Fuzzy para a instncia eil51

Em relao aos resultados pode-se dizer que o algoritmo conseguiu encontrar boas
solues e que algumas delas possuem alto grau de possibilidade de serem melhores que
a soluo tima (em negrito).
O tempo mdio consumido para a realizao de cada rodada foi de 3 minutos.
Na Figura 7.8 encontra-se alguns caminhos obtidos pelo algoritmo ACS-Fuzzy.

7.5 Resultados

57

Figura 7.8: (a) Caminho timo com grau de possibilidade 1, (b) caminho com grau
de possibilidade 0,9902, (c) caminho com grau de 0,9804 e (d) caminho com grau de
possibilidade 0,9706 de ser melhor que a soluo tima

7.5 Resultados

7.5.2

58

Instncia eil76

Assim como o grafo eil51, os custos so representados por nmeros triangulares fuzzy
do tipo (ai , am , as ), onde o valor modal cm corresponde a distncia de uma cidade a outra
e os limitantes inferiores ai e superiores as a um desvio de 76 unidades.
Os resultados obtidos pelo algoritmo ACS-Fuzzy para esta instncia esto exibidos na
Tabela 7.2.
Para este grafo o algoritmo ACS-Fuzzy no conseguiu encontrar a soluo tima.
Entretanto os resultados encontrados foram satisfatrios pois possuem alto grau de possibilidade de serem melhores que a melhor soluo conhecida ([462 538 614]). Os graus
de possibilidades encontrados por cada experimento foi obtido comparando os resultados
encontrados com a soluo tima ([462 538 614]).

Algoritmo

ACS-Fuzzy

Nmero de

Grau de

Custo Fuzzy

Experimentos

Possibilidade

0,9803

[465 541 617]

0,9408

[471 547 623]

0,9276

[473 549 625]

0,9342

[472 548 624]

0,9276

[473 549 625]

0,9605

[468 544 620]

0,9539

[469 545 621]

0,9474

[470 546 622]

0,9539

[469 545 621]

10

0,9474

[470 546 622]

Tabela 7.2: Resultados obtidos pelo ACS-Fuzzy para a instncia eil76

O tempo mdio consumido para a realizao de cada experimento foi de 9 minutos.

Captulo 8
Consideraes Finais e Perspectivas
Futuras
Neste trabalho foram apresentadas algumas tcnicas heursticas mais utilizadas na
resoluo do Problema do Caixeiro Viajante. Este problema consiste em encontrar um
caminho mnimo entre duas cidades, e bastante estudado dentro da teoria de grafos, pois
o mesmo possui diversas aplicaes prticas. Particularmente, o enfoque deste trabalho se
concentrou nas meta-heursticas de Otimizao por Colnia de Formigas e no Algoritmo
Gentico.
Baseadas em tcnicas da computao natural, um algoritmo hbrido que trabalha
conjuntamente com as meta-heursticas de sistema de colnia de formigas e gentico foi
proposto para resolver o problema do caixeiro viajante, cujo principal objetivo explorar o
espao de busca de solues de forma eficiente, visando encontrar uma soluo aproximada,
de forma a contornar a questo da complexidade.
Enquanto que o algoritmo de sistema de colnia de formigas tem dificuldades em sair
de pontos mnimos locais, o algoritmo hbrido consegue explorar com maior facilidade o
espao de busca, obtendo melhores resultados que os algoritmos ACS e o AG individualmente.
Em muitos casos reais, as informaes associadas aos problemas, tais como: custo,
capacidade, tempo, etc; possuem valores incertos, fazendo com que a teoria clssica dos
conjuntos torne-se ineficaz para represent-los. Assim necessrio utilizar uma representao robusta, que pode ser obtida por meio da teoria dos conjuntos fuzzy.
Desta forma foi proposta uma extenso do algoritmo de sistema de colnia de formigas

59

60

aplicado ao problema do caixeiro viajante em grafos que possuem incertezas associadas s


arestas, e a Teoria da Possibilidade foi utilizada para encontrar a soluo composta pelos
ns que possuem alto Grau de Possibilidade de pertencerem melhor soluo.
Os resultados obtidos so bastantes satisfatrios, comprovando que a implementao
de tcnicas da computao natural realmente promissora para resolver problemas de
exploso combinatria, como o caso do problema abordado neste trabalho.

Perspectivas Futuras
Algumas sugestes para trabalhos futuros so as seguintes:
A implementao de uma busca local no algoritmo gentico, logo aps a mutao dos
indivduos, pode fazer com que o processo de explotao do espao de busca seja otimizado,
possibilitando obter melhores resultados. Tambm pode-se utilizar novas tcnicas de
seleo e novos operadores.
Aplicar heursticas de melhorias no algoritmo de sistema de colnia de formigas para
o problema do caixeiro viajante, tais como 2-opt, 3-opt ou outra tcnica similar.
A utilizao de outras tcnicas da computao evolutiva como sistema imunolgico
artificial, algoritmos co-evolutivos, ou ainda a implementao de algoritmos memticos
podem ser eficientes para resolver o problema estudado.
Devido aos bons resultados obtidos pela aplicao da meta-heurstica hbrida para
resolver o problema do caixeiro viajante, pode-se propor a implementao da mesma para
resolver outros problemas reais, tais como roteamento de veculos e similares.
Implementao de algoritmos hbridos para tratar problemas de caixeiro viajante
com incertezas.

Apndice A
GRAFOS DE ALGUMAS INSTNCIAS DO TSPLIB OBTIDOS COM OS
ALGORITMOS ACS, AG E ACS+AG-TSP

Figura A.1: (a) Soluo para o grafo eil51 com o AG com erro de 0, 7% e (b) com os
algoritmos ACS e ACS+AG-TSP soluo tima encontrada 426

Figura A.2: (a) Soluo para o grafo kroA100 com o ACS com erro de 0, 17% e (b) com
o algoritmo ACS+AG-TSP soluo tima encontrada 21282

61

62

Figura A.3: Soluo para o grafo eil76, (a) com o AG (erro de 2, 42%) , (b) com o ACS
(erro de 0, 9%) e (c) com o algoritmo proposto neste trabalho (soluo tima encontrada
538)

Figura A.4: (a) Soluo para o grafo bier127 com o ACS com erro de 0, 78% e (b) com o
algoritmo hbrido soluo tima encontrada 118282

Referncias Bibliogrficas
[1] Ahuja, A. K., Magnati, T. L. and Orlin, J. B., Network flows: Theory, Algorithms,
and Applications. 1 edn, Prentice-Hall, (1993).
[2] Affenzeller, M., Wagner, S., A Self-Adaptive Model for Selective Pressure Handling
Within the of Genetic Algorithms. In: Computer Aided Systems Theory, Eurocast,
Spriger Verlag, 2809, n.1, (2003) 384393.
[3] Bonabeau, E., Dorigo, M., and Theraulaz, G., From Natural to Artificial System Swarm Intelligence. Oxford University Press, (1999).
[4] Bonfim T. R., Escalonamento memtico e neuro-memtico de tarefas. PhD thesis,
Universidade Estadual de Campinas, (2006).
[5] Bullnheimer, Hartz, R. F., and Strauss, C., An improved Ant System algorithm for
theVehicle Routing Problem, Annals of Operations Research. To appear, (1999).
[6] Costa, D., and Hertz, A., Ants can colour graphs, Journal of the Operational Research
Society, 48, (1997).
[7] Darwin, C. On The Origin of Species, 1 st edition,Harward University Press. MA,
(1859).
[8] Deneubourg, J. L., S. Aron, S. Goss, and J. M. Pasteels. The Self-Organizing Exploratory Pattern of the Argentine Ant. J. Insect Behavior 3 (1990), 159- 168.
[9] Dorigo, M., and Gambardella, L. M., Ant Colonies for the Traveling Salesman Problem, BioSystems 43, n.2, (1997), 7381.
[10] Dorigo, M., Di Caro, G., The Ant Colony Optimization Meta-Heuristic. In Corne, D.,
Dorigo, M., and Glover F. (Eds.) New Ideas in Optimization, New York: McGrawHill, (1999), 1132.
63

REFERNCIAS BIBLIOGRFICAS

64

[11] Dorigo, M. Optimization, Learning and Natural Algorithms. Ph.D.Thesis, Politecnico


di Milano, Italy, (1992).
[12] Dorigo, M., and Sttzle, T., ACO Algorithms for the Traveling Salesman Problem,
In K. Miettinen, M. Makela, P. Neittaanmaki, J. Periaux, editors, Evolutionary
Algorithms in Engineering and Computer Science, Wiley, (1999).
[13] Dorigo, M., and Sttzle, T., Ant Colony Optimization. Cambridge, MA: MIT Press,
(2004).
[14] Dubois, D. and Prade, P., Fuzzy Sets and Systems:Theory and Applications.Academic
Press, (1980).
[15] Edmonds, J., Paths, Trees, and Flowers. Canadian Journal of Mathematics, n.17,
(1965), 449467.
[16] Gambardella, L. M., and Dorigo, M., Ant Colony System hybridized with a new local
search for the sequential ordering problem, INFORMS J Comput, 42, n.12, (2000),
237255.
[17] Garey, M. R., and Johnson, D. S., Computers and Intractability: A Guide to the
Theory of NP-Completeness, San Francisco, CA: W. H. Freeman (1979).
[18] Goldbarg, M. C. end Luna, H. P. Otimizao Combinatria e Programao Linear:
Modelos e Algoritmos. 1 edn, Campus, RJ, Brasil, (2000).
[19] Holland, J. H., Adaptation in Natural and Artificial Systems, 2 edn, MIT Press, MA,
USA, (1992).
[20] Homaifar, S. Guan, and G. E. Liepins., A New Approach to the Traveling Salesman by
Genetic Algorithms. In: Proceeding of the 5th International Conference on Genetic
Algorithms, Morgan Kaufmann, (1993), 460-466.
[21] Maniezzo, V.,Exact and approximate nondeterministic tree-search procedures for the
quadratic assignment problem. INFORMS J Comput, 11, n.4, (1999), 358369.
[22] Melamed, I. I., Sergeev, S. I., Sigal, I. Kh. The Traveling Salesman Problem. Surveys.
[S.l.]: Plenum Publishing Corporation, (1990), 11471173.

REFERNCIAS BIBLIOGRFICAS

65

[23] Merz, P., Freisleber, B., Genetic Local Search for the TSP: New results. In: IEEE
International Conference on Evolutionary, IEEE press, Indaianapolis, (1997), 159164.
[24] Michalewicz, Z., Genetic Algorithms + Data Structures = Evolution Programs,
Springer-Verlag, Berlin, (1996).
[25] Okada,S., Interactions among paths in fuzzy shortest path problems, in Joint 9th
IFSA World Congress and 20th NAFIPS International Conference, Vol.1, Vancouver,
BC, Canada, (2001), 4146.
[26] Onwubolu, G. C., Clerc, M., Optimal path for automated drilling operations by a
new heuristic approach using particle swarm optimization. International Journal of
Production Research 42, n. 3, (2004), 473491.
[27] Pedrycz, W., and Gomide, F., An Introduction to Fuzzy Sets: Analysis and Design.
A Bradford Book, (1998).
[28] Pilat, M. L., and White, T., Using Genetic Algorithms to Optimize ACS-TSP. Proceedings of the Third International Workshop on Ant Algorithms, ANTS, SpringerVerlag, 2463, (2002), 282287.
[29] SARI, S. C., SHERALI, H.D., BHOOTRA, A., New tighter polynomial length formulations for the asymmetric traveling salesman problem with and without precedence
constraints. Operations Research Letters, 33, n. 1, (2005), 6270.
[30] Sttzle, H., Hoss, H., The Max-Min Ant System and Local Search for the Travelling
Salesman Problem. Proceedings of the IEEE International Conference on Evolutionary Computation (ICEC97), (1997), 309314.
[31] Sttzle, H., Hoss, H., Max-Min Ant System. Future Generation Computer Systems,
16, n. 8, (2000), 889914.
[32] Takahaski, M. T., Contribuiesao Estudo de Grafos Fuzzy: Teoria e Algoritmos.
PhD thesis, Universidade Estadual de Campinas, (2004).
[33] Zadeh, L., Fuzzy sets. Information and Control, 8, (1965), 338353.

REFERNCIAS BIBLIOGRFICAS

66

[34] Zadeh,L.A.(1978),Fuzzy sets as a basis for a theory of possibility, Fuzzy Sets and
Systems, negr1, V.1, 328.

Você também pode gostar