Académique Documents
Professionnel Documents
Culture Documents
Sumrio
Introduo
Heurstica: Colnia de Formigas
Desafios
Metodologia
Problemas
Resultados e Concluses
Referncias
Introduo
Suponha que um caixeiro viajante tenha de visitar n cidades diferentes,
iniciando e encerrando sua viagem na ultima cidade*. Suponha, tambm,
que no importa a ordem com que as cidades so visitadas e que de cada uma
delas pode-se ir diretamente a qualquer outra.
Introduo
O problema do caixeiro um clssico exemplo de problema de
otimizao combinatria. A primeira coisa que podemos pensar para resolver
esse tipo de problema reduzi-lo a um problema de enumerao: achamos
todas as rotas possveis e, usando um computador, calculamos o comprimento
de cada uma delas e ento vemos qual a menor. Porm, mesmo com o poder
de processamentos dos computadores modernos, o custo computacional para
enumerar todas as possveis combinaes segue uma ordem de proporo
(n-1)!, ou seja, para um grafo de 25 cidades, sero necessrios 1.15x1025
de operaes, logo o tempo necessrio para processamento total seria de 470
milhes de anos*.
* Considerando que o computador consiga realizar 42 milhes de operaes por segundo.
Introduo
Na computao, quando problemas dessa categoria so apresentados,
normalmente a soluo dada por meio de uma heurstica, que um grupo
de estratgias de algoritmo que possuem as caractersticas:
a)
c)
10
Sempre que uma formiga atravessa uma aresta, seu valor de feromnio
aumentada proporcionalmente a uma taxa definida.
11
Desafios
Encontrar uma relao funcional entre o Grafo e valores de R, F, T, e ;
Encontrar um bom valor de taxa de depsito e evaporao de feromnio nas
arestas.
12
Metodologia
A estratgia de implementao deste trabalho foi inspirada nos trabalhos
realizado por FERREIRA (2008) e LACERDA (2008), nos quais optamos por
utilizar parte de suas metodologias e adaptar parte do algoritmo para a
variao do PCV que estamos trabalhando.
13
Metodologia
DC das classes abstratas Formiga e Caminho
14
Metodologia
fim enquanto
se Lr < L* ento
C* = Cr
reconpensaCaminho(Cr)
senao
* = Melhor caminho
L = Custo do Caminho
atualizeFeromonio(Cr)
fim seno
C = Caminho
fim para
PCC Joo P. Menezes Rodrigo D. Almeida
15
Metodologia
A seleo da prxima cidade aleatria foi feita de seguinte forma:
numCidades numCidadesRestantes
indiceDaProximaCidade random(1..numCidades)
proximaCidade buscaCidadePorIndice(indiceDaProximaCidade)
insereCaminho(buscaAresta(atual, proximaCidade))
atual proximaCidade
removeRestantes(proximaCidade)
insereVisitados(proximaCidade)
16
Metodologia
A segunda etapa do algoritmo foi definida da seguinte forma:
para t = 1 at T
para f = 1 at F
se Lf < L* ento
C* = Cf
reconpensaCaminho(Cf)
seno
AtualizeOsferomonios(Cf)
fim para
evaporaFeromonio()
fim para
PCC Joo P. Menezes Rodrigo D. Almeida
17
18
ij = (1 ) * ij
onde: 0 < < 1 a taxa de evaporao de feromnio.
19
ij = Q /Lf
onde:
Q uma constante (Taxa de depsito).
Lf = Custo total do caminho.
Foi observado no desenvolvimento do trabalho que:
20
ij = Q /Lf * B
onde:
Q uma constante (Taxa de depsito).
21
Caminho: A
22
C
Caminho: A - B
A
23
50%
D
Caminho: A B - D
24
Caminho: A B D -C
25
Caminho: A B D C - E
26
27
onde:
ij feromnio associado a aresta (i,j);
28
29
fim para
aceitao aceitao / A
30
Aceitao:
Trata-se de um atributo de cada formiga, inicialmente definido, e que pode ter seu
valor alterado caso nenhuma cidade seja escolhida durante um escaneamento das
cidades vizinhas.
Sua funo aumentar as chances das arestas serem selecionada, reduzindo o nmero
aleatrio gerado, evitando um possvel lao infinito caso nenhuma arestas possui Pkij
menor que o nmero aleatrio.
A: Constante que representa a taxa da aceitao, sua funo aumentar as chances de Pkij
ser maior que o nmero aleatrio, reduzindo-o com um divisor. Sempre utilizado no
momento em que todas as arestas foram visitadas, mas nenhuma foi selecionada.
31
Aceitao:
O valor inicial da aceitao deve ser proporcional ao nmero de arestas contidos no
grafo para que haja uma melhor taxa de seleo de arestas, como representado no
exemplo abaixo:
N = 100
32
Aceitao:
C = 600 F = 11
33
Um nmero decimal aleatrio (0 < n < 1) seguindo um distribuio normal, ter o valor mdio
= 0,5, consideraremos que este valor ser assumido em toda iterao.
O multiplicador aceitao inicialmente ter o valor = 1.
Logo, na primeira iterao, R = 0.5 * 1 = 0.5
Para A1, 0,00075 > 0.5 falso, portanto a aresta A1 no selecionada.
Caso nenhuma aresta seja selecionada nesta rodada, o valor da varivel aceitao sofrer
reduo por meio da taxa de reduo A. (Considerando A = 10).
A varivel de aceitao assumira o valor de 1/10 = 0.1
34
35
A6
20%
A1
40%
A5
20%
8
6
A4
10%
A3
5%
A2
5%
4
2
0
A1
A2
A3
A4
A5
A6
36
R random(0..1)
acumulo 0
para j = 1 at cidadesRestantes
Calcule Pkij
acumulo acumulo + Pkij
retorno
fim se
fim para
PCC Joo P. Menezes Rodrigo D. Almeida
37
Problemas
38
Problemas
Com um grande aumento na quantidade de arestas, o resultado do calculo da
probabilidade da formiga f selecionar a cidade c torna cada vez menor, e mais trabalhoso
de se tratar:
?!??
39
Resultados e Concluses
Nesta sesso, iremos apresentar os resultados obtidos pelas duas verses do algoritmo em
3 diferentes cenrios: Um grafo de 50 vrtices completos*, um grafo de 100 vrtices
completos** e um grafo de 200 vrtices completos***.
Ser realizada uma comparao nos quesitos de custo e tempo de execuo entre as duas
verses do algoritmo.
A mquina que executou as instncias do algoritmo possua as seguintes configuraes:
Windows 10 64 bits
Java build 1.8.0_65-b17
Intel Core i5-3230M 2.60 GHz
6.0 GB de memria RAM
40
Resultados e Concluses
Grafo de 50 vrtices
Parmetros:
=1
=2
Taxa de Reduo de Feromnio = 0.9
Taxa de Bnus de Feronomio = 10
Aceitao = 1
A = 1.5
N = numVertices * 100 = 50 * 100 = 5000
F = numVertices * 1 = 50
T = numVertices * 2 = 100
Q = peso de uma aresta sorteada * numVertices
Cidade inicial = 1
Cidade final = 50
PCC Joo P. Menezes Rodrigo D. Almeida
41
Resultados e Concluses
50 Vrtices - Custo
Algoritmo A
Algoritmo B
Diferena
3329,74
3239,8071
3442,649
3442,649
3239,8071
3239,8071
3375,6985
3385,2966
3206,5024
3427,2634
3233,6187
3479,2058
3360,1423
3233,6187
3239,8071
3268,7136
3239,8071
3445,5684
3239,8071
3436,9868
3239,8071
3285,9058
3206,5024
3188,0059
3185,3755
3159,57
3241,056
3351,982
3206,5024
3351,982
3374,9062
3426,6118
3445,5684
3261,5059
3262,7896
3321,4976
3353,385
3148,635
3230,9766
3188,0059
3387,9766
3319,3271
43,8342
33,3047
254,6431
257,2735
80,2371
-1,2489
23,7165
178,7942
-145,4796
52,3572
-192,9931
33,6374
98,6364
-29,1709
-81,6905
-84,6714
91,1721
214,5918
51,8012
49,0102
-79,52
42
Resultados e Concluses
Custo 50 Vrtices
Media
Desvio Padro
40,392
120,674
43
Resultados e Concluses
50 Vrtices Tempo (Segundos)
Algoritmo A
Algoritmo B
Diferena
37,836
38,692
38,023
35,573
37,482
38,909
39,141
38,996
39,962
37,116
40,127
38,538
38,062
38,728
39,842
37,06
39,642
36,656
36,559
38,816
39,714
37,413
38,291
35,838
37,383
37,085
39,018
36,889
38,731
35,274
38,559
38,885
38,55
36,201
38,897
38,843
37,691
36,854
39,039
38,529
38,689
37,381
0,423
0,401
2,185
-1,81
0,397
-0,109
2,252
0,265
4,688
-1,443
1,242
-0,012
1,861
-0,169
0,999
-0,631
2,788
-2,383
-1,97
0,127
2,333
44
Resultados e Concluses
Tempo 50 Vrtices
Media
Desvio Padro
Intervalo de Confiana
(90%)
0,544
1,742
0,544 0,608 =
-0,064 .. 1,153
Podemos afirmar com 90% de confiana que os 2 algoritmos tm tempo de execuo iguais
45
Resultados e Concluses
Grafo de 100 vrtices
Parmetros:
=1
=2
Taxa de Reduo de Feromnio = 0.9
Taxa de Bonus de Feronomio = 10
Aceitao = 1
A = 1.5
N = 100
F = 50
T = 100
Q = peso de uma aresta sorteada * numVertices
Cidade inicial = 1
Cidade final = 100
PCC Joo P. Menezes Rodrigo D. Almeida
46
Resultados e Concluses
Guloso = 5.187
3510,7937
3525,7686
3511,9458
3085,1958
3284,8406
3447,0159
3158,7043
3632,723
3318,703
3558,4475
235,6933
53,5942
115,7195
-198,2756
-160,656
-324,7093
178,2022
-221,5711
-97,6259
-80,7707
47
Resultados e Concluses
Custo 100 Vrtices
Media
Desvio Padro
Intervalo de Confiana
(95%)
-50,04
186,856
-50,04 130,05 =
-180,095 .. 80,015
Podemos afirmar com 95% de confiana que os 2 algoritmos apresentam resultados iguais
PCC Joo P. Menezes Rodrigo D. Almeida
48
Resultados e Concluses
100 Vrtices Tempo (Segundos)
Algoritmo A
Algoritmo B
Diferena
361,476
346,783
439,257
366,538
339,667
346,562
350,574
289,493
310,928
295,098
330,448
365,561
353,327
319,663
369,473
373,53
365,559
376,707
367,872
334,943
PCC Joo P. Menezes Rodrigo D. Almeida
31,028
-18,778
85,93
46,875
-29,806
-26,968
-14,985
-87,214
-56,944
-39,845
49
Resultados e Concluses
Tempo 100 Vrtices
Media
Desvio Padro
Intervalo de Confiana
(95%)
-11,071
51,583
-11,071 35,903 =
-46,973 .. 24,832
Podemos afirmar com 95% de confiana que os 2 algoritmos tm tempo de execuo iguais
PCC Joo P. Menezes Rodrigo D. Almeida
50
Resultados e Concluses
Grafo de 200 vrtices
Parmetros:
=1
=2
Taxa de Reduo de Feromnio = 0.9
Taxa de Bonus de Feronomio = 10
Aceitao = 1
A = 1.5
N = 100
F = 50
T = 100
Q = peso de uma aresta sorteada * numVertices
Cidade inicial = 1
Cidade final = 100
PCC Joo P. Menezes Rodrigo D. Almeida
51
Resultados e Concluses
200 Vrtices - Custo
Algoritmo A Algoritmo B
Diferena
4762,197
5330,798
5220,34
5023,2427
5250,2056
5113,167
5.169
4770,221
5272,0947
5116,4604
5277,7046
5062,3916
5410,5693
5339,3926
5367,096
5100,3955
-509,8977
214,3376
-57,3646
-39,1489
-160,3637
-226,2256
-198,184
-330,1745
52
Resultados e Concluses
Custo 200 Vrtices
Media
Desvio Padro
Intervalo de Confiana
(95%)
-130,70214
201,4160282
-130,702 71,21131 =
-201,913 .. -59,491
Podemos afirmar com 95% de confiana que o algoritmo A apresenta um resultado menor que o algoritmo B
PCC Joo P. Menezes Rodrigo D. Almeida
53
Resultados e Concluses
200 Vrtices Tempo (Segundos)
Algoritmo A
Algoritmo B
Diferena
856,413
954,923
829,313
776,436
834,037
765,264
982,917
813,458
918,815
952,659
913,585
787,821
764,908
904,152
898,124
904,771
-62,402
2,264
-84,272
-11,385
69,129
-138,888
84,793
-91,313
54
Resultados e Concluses
Tempo 200 Vrtices
Media
Desvio Padro
Intervalo de Confiana
(95%)
-23,2074
70,97832327
-23,2074 25,094
=
-48,3014 .. 1,8866
Podemos afirmar com 95% de confiana que os 2 algoritmos tm tempo de execuo iguais
PCC Joo P. Menezes Rodrigo D. Almeida
55
Resultados e Concluses
Embora realizado com uma amostra relativamente pequena, este experimento aponta
que a modificao de algoritmo de seleo de cidades discutido no apresenta uma
diferena significativa para grafos completos de 50, 100 e 200 vrtices, utilizando os
materiais e mtodos descritos anteriormente.
56
Referncias Bibliogrficas
FERREIRA, F.S, G.D.M, O.N.T; Colnia Evolucionria de Formigas: Uma Proposta Inicial
Aplicada ao Problema do Caixeiro Viajante; PPGEE, DEEC, Universidade Federal do
Par, UFPA, 2008
JALE, J.S, DCP; Sistema de Formigas Aplicado ao Problema do Caixeiro Viajante,
Universidade Federal Rural de Pernambuco, UFRP, SINAPE, 2010.
LACERDA, E.G.M; A Otimizao Colnia de Formigas, Departamento de Engenharia da
Computao e Automao, UFRN, 2008.
57