UNIVERSIDADE ESTADUAL PAULISTA
“JÚLIO DE MESQUITA FILHO”
CAMPUS DE RIO CLARO
SEMINÁRIO DE COMPUTAÇÃO EVOLUTIVA
PROFª Drª ADRIANE BEATRIZ DE SOUZA SERAPIÃO
Uso do Algoritmo Particle Swarm Optimization (PSO)
para otimização de prioridades de tarefas.
Thales Eduardo Nazatto
Índice

Introdução

O algoritmo PSO

O problema

Implementação

Procedimentos
Computação Evolutiva
PSO para otimização de prioridades de
tarefas.
2
Introdução
Computação Evolutiva
PSO para otimização de prioridades de
tarefas.
3
Introdução
Computação Evolutiva
PSO para otimização de prioridades de
tarefas.
4
Introdução
Computação Evolutiva
PSO para otimização de prioridades de
tarefas.
5
Introdução
Computação Evolutiva
PSO para otimização de prioridades de
tarefas.
6
Introdução
Computação Evolutiva
PSO para otimização de prioridades de
tarefas.
7
Introdução
Prioridades
Falta algo?
Contas
Afazeres
Urgências
Lazer
Vida social
Dívidas
Notícias
Acabou?
Mais?
Projetos
Viagens
Estudos
Tempo
Computação Evolutiva
PSO para otimização de prioridades de
tarefas.
8
Introdução
Computação Evolutiva
PSO para otimização de prioridades de
tarefas.
9
Introdução

Em coisas como tarefas, não há um critério bem definido
das coisas.

Há critérios que podem influir em outros.

Os critérios variam de pessoa para pessoa.

A implementação para organização é bastante complexa.

Muitos programas simplificam essa organização.

Os conceitos usados nos algoritmos evolutivos podem
ajudar a simplificar essa implementação sem simplificar a
organização e seus critérios.
Computação Evolutiva
PSO para otimização de prioridades de
tarefas.
10
O algoritmo PSO

Algoritmo Evolutivo Metaheurístico

Baseado na dinâmica populacional

Criadores: Kennedy e Eberhart (1995)

Produz resultado semelhante aos algoritmos
genéticos com uma rapidez bem maior
Computação Evolutiva
PSO para otimização de prioridades de
tarefas.
11
O algoritmo PSO

Baseado em 2 funções:

Veloidade:

Posição:
Computação Evolutiva
PSO para otimização de prioridades de
tarefas.
12
O algoritmo PSO



Algoritmo: Atualizar pBest e gBest, Calcular novas posições e
velocidades e atualizar partículas.
Isso é feito a cada nova geração. (iteração)
O primeiro termo é relacionado a inércia da partícula, o
segundo ao fator cognitivo relacionado à atração da partícula
ao melhor ponto encontrado e o terceiro ao fator social, que
representa a colaboração entre as partículas.
Computação Evolutiva
PSO para otimização de prioridades de
tarefas.
13
O problema


Dado um número m de tarefas com n variáveis de diferentes domínios, o
problema inicial é a formulação de um modelo para organização com a
influência de variáveis tão distintas.
As variáveis que influenciam essa organização são (Variável/Domínio):

Prioridade da tarefa – Domínio dos números inteiros

Tempo restante da tarefa – Domínio do tempo / números reais

Tempo esperado da tarefa – Domínio do tempo / números reais

Porcentagem restante para conclusão da tarefa – Domínio dos números reais

Total de horas esperado da tarefa – Domínio do tempo / números reais

Total de horas trabalhadas nesta tarefa – Domínio do tempo / números reais
Computação Evolutiva
PSO para otimização de prioridades de
tarefas.
14
O problema


Solução: Transformar essas n variáveis em uma função de um
único domínio.
Cada variável recebe uma pontuação Xi Є [0,1000] e um peso
Pi

Com isso, um St é obtido com a seguinte função:

Nesse caso, n = 6
Computação Evolutiva
PSO para otimização de prioridades de
tarefas.
15
O problema

Agora, o problema consiste em usar o PSO
para ordenar as tarefas tomando St como
critério de ordenação.
Computação Evolutiva
PSO para otimização de prioridades de
tarefas.
16
Implementação

Computador: Core 2 Duo, 2 GB RAM HD 12o
GB

SO: Windows 7

IDE: NetBeans 6.8

Linguagem de Implementação: Java
Computação Evolutiva
PSO para otimização de prioridades de
tarefas.
17
Implementação





Cada tarefa recebe uma pontuação, de acordo com as
configurações colocadas.
O PSO é utilizado para achar uma “tarefa ótima” nessa
população com base nas pontuações de cada tarefa.
Caso a convergência total não seja alcançada, ela é “forçada”
fazendo a média entre as soluções da última geração do PSO.
É calculada a distância entre a pontuação da tarefa ótima e a
pontuação de cada tarefa, denominada no sistema por match.
As tarefas são ordenadas com base no match e caso ele seja
igual, o fitness é o critério base.
Computação Evolutiva
PSO para otimização de prioridades de
tarefas.
18
Procedimentos


Foram implementados 4 critérios para gerar bases de dados.

Base 1 – Nenhum critério utilizado. (Base randômica)

Base 2 – Elementos com maior prioridade são menos urgentes.

Base 3 – Elementos com maior prioridade são mais urgentes.

Base 4 – Equilíbrio de urgência entre os elementos.
Cada base foi testada 3 vezes.
Computação Evolutiva
PSO para otimização de prioridades de
tarefas.
19
Procedimentos

Parâmetros para teste
Computação Evolutiva
PSO para otimização de prioridades de
tarefas.
20
Procedimentos

Tabela de pontuações de tarefas:
Tarefa ótima
Tarefa 1
Tarefa 2
Tarefa 3
Tarefa 4
Tarefa 5
Tarefa 6
Tarefa 7
Tarefa 8
Tarefa 9
Tarefa 10
Tarefa 11
Tarefa 12
Tarefa 13
Tarefa 14
Tarefa 15
Tarefa 16
Tarefa 17
Tarefa 18
Tarefa 19
Tarefa 20
Tarefa 21
Tarefa 22
Tarefa 23
Tarefa 24
Tarefa 25
Média
Desvio-padrão
Média geral
Desvio-padrão geral
Teste 1
5890,98712
5900,67507
5927,10999
5888,80043
5872,30931
5868,79810
5864,49129
5858,43941
5964,27200
5839,35575
5837,75055
5837,38851
5831,75064
5825,84514
5819,56391
5817,98857
5811,34170
5808,80705
5807,12316
5806,14922
5803,30392
5802,55644
5801,95951
5801,15460
6576,48082
6785,66085
5910,36304
237,67281
Computação Evolutiva
Base 1
Teste 2
5870,22935
5870,95361
5863,55008
5849,96248
5893,40597
5835,45785
5917,68784
5821,80866
5783,51861
5770,58545
5762,72665
5756,52067
5992,98083
5743,53698
5737,44597
5731,74657
5731,40028
5729,49549
5729,48570
5725,05536
5724,90110
5721,85394
5721,58460
6062,48915
6572,58537
6704,99447
5870,22935
249,07798
6085,10781
376,95916
Teste 3
6474,73104
6478,16212
6493,57139
6427,00938
6425,63778
6399,98644
6379,24693
6373,67982
6361,78165
6359,45736
6354,89140
6344,08917
6343,31431
6337,79476
6331,45927
6326,97057
6325,88246
6325,69333
6325,37882
6323,18665
6319,18809
6642,06630
6253,86812
7204,74205
7205,29419
7205,92353
6474,73104
285,60768
Teste 1
6142,99723
6161,17734
6162,33086
6162,33086
6162,32723
6162,32723
6162,32723
6162,32723
6106,58086
6106,58086
6106,58086
6073,58086
6073,58086
6073,58086
6050,44234
6050,44234
6050,44234
6243,34277
6243,34277
6243,34277
6032,33086
6032,33086
6018,58086
6018,58086
6015,38633
6900,71789
6142,99665
173,54059
Base 2
Teste 2
6412,85899
6366,06113
6366,06113
6366,06113
6366,06113
6285,04922
6285,04922
6542,49695
6542,96589
6196,29922
6196,29922
6196,29922
6196,29922
6196,29922
6173,16069
6173,16069
6173,16069
6155,04922
6141,29922
6141,29922
6141,29922
7022,03103
7022,60280
7025,62933
7025,67841
7025,80228
6412,85899
331,62063
6267,85620
306,42364
Teste 3
6247,74241
6171,64903
6171,64903
6348,55379
6348,55379
6348,55379
6348,55379
6348,55379
6090,63713
6090,63713
6034,88713
6034,88713
5978,74860
5978,74860
5978,74860
5978,74860
5960,63713
5960,63713
5946,88713
5946,70739
5945,04606
6835,97803
6835,97803
6835,97803
6835,97803
6836,88713
6247,71296
332,95399
Teste 1
8230,87249
8208,42593
8208,42593
8208,42593
8255,37037
8255,37037
8186,75926
8175,03704
8175,03704
8175,03704
8168,00076
8163,45569
8163,45569
8163,45569
8163,45569
8160,35494
8160,35494
8160,35494
8160,35494
8160,35494
8160,35494
8158,14815
8157,56524
8389,25926
8389,25926
9045,73839
8230,87249
181,52386
Base 3
Teste 2
6077,56913
6120,98091
6122,03568
6122,51118
6125,07838
6125,23230
5996,97156
5996,91350
5995,64009
5994,99421
5994,58011
5950,37696
5950,37696
5949,69122
5916,98807
5916,98807
5909,95179
5905,40672
5902,30597
5902,30597
5900,09918
5900,09918
5900,09918
6777,82027
6778,57178
6783,20910
6077,56913
276,69566
6661,15096
1146,23461
PSO para otimização de prioridades de
tarefas.
Teste 3
5691,62173
5696,65629
5717,67582
5717,67582
5717,67582
5729,39804
5653,84541
5653,84541
5653,84541
5653,43075
5646,80913
5646,80913
5646,26976
5642,26406
5639,16331
5639,16331
5639,16331
5636,95652
5636,95652
5636,95652
5636,95652
5527,71624
5526,20197
5858,68579
5860,36673
5860,79379
5675,01126
84,23235
Teste 1
6125,82448
6124,90581
6092,62817
6081,94113
6080,07643
6079,32773
6175,97636
6177,39560
6068,36481
6063,31632
6062,28425
6056,29332
6051,99952
6051,80466
6050,58197
6047,92117
6047,60023
6044,20792
6040,14744
6039,74148
6032,55586
6023,12171
6244,88570
6323,04328
6334,51919
6508,99077
6116,14523
118,86179
Base 4
Teste 2
5996,20438
5981,43312
5969,35258
6026,24889
6027,71828
5956,99347
5952,35224
5940,25019
6054,95076
5937,40692
6058,26492
5925,50438
6068,03167
5913,15816
5912,59870
5904,19585
6091,01967
6091,07287
5895,74332
5890,82947
5889,23630
5889,10193
5882,64089
5878,06819
6302,63880
6466,29963
5996,20445
137,92205
6168,38607
213,75372
Teste 3
6392,80854
6391,16831
6389,04273
6384,13733
6407,42072
6339,30514
6330,22064
6320,75728
6319,88318
6314,40908
6311,63197
6307,51400
6299,50286
6296,26023
6282,09050
6281,29958
6280,26477
6279,24288
6278,67392
6266,49802
6528,89736
6541,57930
6598,53558
6600,78920
6633,25128
6837,83766
6392,80854
146,76609
21
Procedimentos

Tabela de match de pontuação:
Tempo de Execução(s)
Tarefa 1
Tarefa 2
Tarefa 3
Tarefa 4
Tarefa 5
Tarefa 6
Tarefa 7
Tarefa 8
Tarefa 9
Tarefa 10
Tarefa 11
Tarefa 12
Tarefa 13
Tarefa 14
Tarefa 15
Tarefa 16
Tarefa 17
Tarefa 18
Tarefa 19
Tarefa 20
Tarefa 21
Tarefa 22
Tarefa 23
Tarefa 24
Tarefa 25
Média
Desvio-padrão
Média geral
Desvio-padrão geral
Teste 1
28
9,67879
16,74697
21,56259
38,05371
41,56492
45,87173
51,92360
53,90898
71,00726
72,61246
72,97451
78,61238
84,51788
90,79953
92,37444
99,02131
101,55597
103,23986
104,21380
107,05909
107,80658
108,40361
109,20822
666,11781
875,29783
128,96535
197,89718
Computação Evolutiva
Base 1
Teste 2
37
0,72426
6,67927
20,26687
23,17662
34,77150
47,45849
48,42068
86,71073
99,64389
107,50270
113,70868
122,75148
126,69237
132,78338
138,48277
138,82907
140,73386
140,74365
145,17399
145,32825
148,37541
148,64475
192,25980
702,35602
834,76512
153,87934
193,32451
157,78486
199,16020
Teste 3
33
3,43108
18,84036
47,72165
49,09325
74,74460
95,48410
101,05121
112,94939
115,27367
119,83963
130,64186
131,41673
136,93628
143,27176
147,76047
148,84857
149,03771
149,35222
151,54439
155,54295
167,33526
220,86292
730,01102
730,56316
731,19250
190,50987
209,20202
Teste 1
39
18,18012
19,33363
19,33363
19,33000
19,33000
19,33000
19,33000
36,41636
36,41636
36,41636
69,41636
69,41636
69,41636
92,55489
92,55489
92,55489
100,34554
100,34554
100,34554
110,66636
110,66636
124,41636
124,41636
127,61089
757,72066
95,43455
143,62831
Base 2
Teste 2
29
46,79786
46,79786
46,79786
46,79786
127,80977
127,80977
129,63796
130,10690
216,55977
216,55977
216,55977
216,55977
216,55977
239,69829
239,69829
239,69829
257,80977
271,55977
271,55977
271,55977
609,17204
609,74381
612,77034
612,81942
612,94329
265,37550
191,34719
212,17701
189,10512
Teste 3
33
76,09338
76,09338
100,81138
100,81138
100,81138
100,81138
100,81138
157,10528
157,10528
212,85528
212,85528
268,99381
268,99381
268,99381
268,99381
287,10528
287,10528
300,85528
301,03502
302,69635
588,23563
588,23563
588,23563
588,23563
589,14472
275,72098
177,95707
Teste 1
31
22,44657
22,44657
22,44657
24,49788
24,49788
44,11323
55,83546
55,83546
55,83546
62,87174
67,41681
67,41681
67,41681
67,41681
70,51755
70,51755
70,51755
70,51755
70,51755
70,51755
72,72434
73,30725
158,38677
158,38677
814,86590
94,45082
153,81238
Base 3
Teste 2
32
43,41178
44,46655
44,94205
47,50925
47,66317
80,59757
80,65564
81,92905
82,57493
82,98902
127,19218
127,19218
127,87791
160,58107
160,58107
167,61735
172,16241
175,26316
175,26316
177,46995
177,46995
177,46995
700,25114
701,00265
705,63997
186,79092
200,53891
115,97618
155,81815
PSO para otimização de prioridades de
tarefas.
Teste 3
36
5,03456
26,05409
26,05409
26,05409
37,77631
37,77631
37,77631
37,77631
38,19098
44,81260
44,81260
45,35197
49,35766
52,45841
52,45841
52,45841
54,66520
54,66520
54,66520
54,66520
163,90548
165,41975
167,06407
168,74500
169,17207
66,68681
52,44106
Teste 1
36
0,91866
33,19630
43,88335
45,74804
46,49675
50,15189
51,57113
57,45967
62,50815
63,54023
69,53116
73,82496
74,01982
75,24251
77,90331
78,22425
81,61656
85,67704
86,08299
93,26862
102,70277
119,06122
197,21880
208,69471
383,16629
90,46837
75,49947
Base 4
Teste 2
34
14,77126
26,85180
30,04451
31,51389
39,21091
43,85215
55,95419
58,74638
58,79747
62,06054
70,70000
71,82728
83,04622
83,60568
92,00853
94,81529
94,86848
100,46106
105,37491
106,96809
107,10246
113,56349
118,13619
306,43442
470,09525
97,63242
95,35843
99,99763
87,37612
Teste 3
53
1,64023
3,76581
8,67121
14,61218
53,50340
62,58790
72,05126
72,92535
78,39946
81,17656
85,29454
93,30568
96,54831
110,71804
111,50896
112,54377
113,56566
114,13462
126,31052
136,08882
148,77076
205,72704
207,98066
240,44274
445,02912
111,89210
92,18885
22
Procedimentos
Computação Evolutiva
PSO para otimização de prioridades de
tarefas.
23
Procedimentos

Tabela de variações de desvio padrão:
Variação dos desvios
Média
Teste 1
39,78
Computação Evolutiva
Base 1
Teste 2
55,75
57,31
Teste 3
76,41
Teste 1
29,91
Base 2
Teste 2
140,27
108,39
Teste 3
155
Teste 1
27,71
Base 3
Teste 2
76,16
45,22
PSO para otimização de prioridades de
tarefas.
Teste 3
31,79
Teste 1
43,36
Base 4
Teste 2
42,56
46,83
Teste 3
54,58
24
Bibliografia




Poli, R., Kennedy, J., Blackwell, T. (2007); Particle Swarm Optimization – An
Overview. Berlin: Springer. p1-8.
Ricardo, R. F., Neto, S. P. Utilização de PSO para otimização de locais candidatos à
instalação de antenas. Faculdade de Jaguariúna - FAJ. Disponível em:
<http://bibdig.poliseducacional.com.br/document/?down=155>. Acesso em: 07 de
jun. De 2011.
Esmin, A. A. A. (2005), Estudo de Aplicação do Algoritmo de Otimização por Enxame
de Partícula na Resolução de Problemas de Otimização Ligados ao SEP. UNIFEI –
Universidade Federal de Itajubá – Programa de Pós-Graduação em Engenharia
Elétrica. Disponível em: <http://adm-net-a.unifei.edu.br/phl/pdf/0030246.pdf>. Acesso
em: 07 de jun. De 2011.
Costa, A. A. B., Biazi, E., Vitor, J. F. d. A.. Aplicação da Metaheurística PSO na
Identificação de Pontos Influentes por meio da Função de Sensibilidade de Casos,
Anais
do
CNMAC
v.2,
ISSN
1984-820X.
Disponível
em:
<www.sbmac.org.br/eventos/cnmac/xxxii_cnmac/pdf/320.pdf>. Acesso em: 13 de jun.
de 2011.
Computação Evolutiva
PSO para otimização de prioridades de
tarefas.
25
Download

PSO