Escolar Documentos
Profissional Documentos
Cultura Documentos
Departamento de Telemtica
Banca Examinadora:
Prof. Dr. Ansio dos Santos Jnior
FEEC / UNICAMP
FEEC / UNICAMP
FAC / Campinas
Campinas, SP
27 de Julho de 2007
C253a
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
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.1
2.2
Formulao Matemtica . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3
Complexidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4
3.1
Consideraes Iniciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2
3.3
3.2.1
Estigmergia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.2.2
Auto-organizao . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.4
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
5.2.2
Algoritmo ACS+AG-TSP . . . . . . . . . . . . . . . . . . . . . . . 33
6 Experimentos Computacionais
34
6.1
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
48
7.1
Conjuntos fuzzy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
7.2
Nmeros fuzzy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
7.2.1
7.3
Teoria da Possibilidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
7.4
7.5
Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
7.5.1
Instncia eil51 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
7.5.2
Instncia eil76 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
59
61
Bibliogrfia
63
Lista de Figuras
3.1
3.2
3.3
3.4
. . . . . . . . . . 12
4.1
4.2
4.3
4.4
4.5
Exemplo de crossover OX . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.6
4.7
5.1
5.2
5.3
6.1
6.2
6.3
6.4
6.5
ix
LISTA DE FIGURAS
6.6
6.7
6.8
6.9
(a) Grfico de Convergncia obtido pelo algoritmo ACS e (b) pelo algoritmo
ACS+AG-TSP para o grafo bier127 . . . . . . . . . . . . . . . . . . . . . . 45
7.2
7.3
7.4
7.5
7.6
Probabilidade dos ns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
7.7
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
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
6.1
6.2
6.3
6.4
6.5
6.6
6.7
7.1
7.2
xi
Lista de Abreviaturas
ACO
TSP
ACS
AS
AG
MMAS
HAS
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
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
2.2
Formulao Matemtica
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
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
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
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
10
3.2
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.
12
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.
13
3.2.1
14
Estigmergia
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.
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
16
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)
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.
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.
18
[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.1
19
(m = nmero de formigas)
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
20
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
21
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
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
24
4.1.1
25
Operadores Genticos
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).
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).
26
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).
27
[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.
28
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;
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
29
30
5.2
31
artificiais.
5.2.1
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:
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).
5.2.2
33
Algoritmo ACS+AG-TSP
cgen fitness do AG
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
35
Instncia
Nmero de cidades
Descrio do problema
eil51
51
brazil58
58
eil76
76
kroA100
100
bier127
127
pr226
226
6.1
6.2 Resultados
6.2
6.2.1
36
Resultados
Instncia eil51
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
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
ACS
AG
ACS+AG-TSP
25395
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
Algoritmo
Melhor sol.
Melhor sol.
Mdia das
Pior sol.
conhecida
encontrada
solues
encontrada
ACS
AG
ACS+AG-TSP
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
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
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
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
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
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)
50
7.2
Nmeros fuzzy
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
7.2.1
51
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
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
e
cij
ijt1
e
cij ) = sup min {t1 (u), t2 (v)}
(7.3)
(uv)
ijt2
ijtk
cij
X
ijt
cij )}
(7.4)
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
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)
53
7.4
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).
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:
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).
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).
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
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
0,9804
0,9510
0,9902
1,0000
0,9608
0,9706
0,9510
0,9706
10
0,9706
ACS-Fuzzy
Custo Fuzzy
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
0,9408
0,9276
0,9342
0,9276
0,9605
0,9539
0,9474
0,9539
10
0,9474
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
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
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.