• Nenhum resultado encontrado

Análise da seleção de algoritmos

3.7 Seleção/Geração de algoritmos para PSO

5.3.2 Análise da seleção de algoritmos

Uma etapa fundamental da abordagem proposta é o processo de seleção de algoritmos, logo, é de fundamental importância avaliar se o algoritmo recomendado é útil (convirja para uma região ótima ou próxima) para o problema de entrada. Para avaliar a etapa de recomendação foi realizado um experimento de leave-one-out. O conjunto de treinamento é composto por todas as instâncias disponíveis menos um e o teste é realizado utilizando a instância removida. Esse

Tabela 12 – Exemplos de <UPDATE-VELOCITY> por categoria de problemas. Category UPDATE-VELOCITY Bowl f1: ω ∗ ~vi+ [~ni− r1∗ ~xi] − ~vi∗ r2 Plate f9: χ ∗ (~vi+ [~ni− ~xi] ∗ r1+ ~ni∗ ~xi∗ r2− ~vi∗ r3) Valley f17: χ ∗ (~vi+ r1∗ [~ni− ~xi] + r2∗ [~pi− ~xi] − r3∗ ~vi) Many f25: χ ∗ (~vi+ r1∗ [~ni− ~xi] − r2∗ r3∗ ~xi∗ ~n2i)

procedimento é repetido até que cada instância do conjunto de treinamento seja testada. A cada passo do leave-one-out, um meta-exemplo é retirado para ser utilizado como novo problema de entrada e os 31 meta-exemplos restantes são mantidos na meta-base para o processo de recomendação.

A avaliação da utilidade da recomendação do sistema proposto é feita através da com- paração entre o valor de fitness alcançado pelo algoritmo recomendado aplicado ao problema de entrada, com o valor de fitness alcançado pelo algoritmo gerado para este problema origi- nalmente. Nas sub-seções anteriores, foi constatada a qualidade dos algoritmos gerados por problema, sendo estes bastante competitivos. Diante disto, se o algoritmo recomendado para um determinado problema de otimização alcançar um resultado tão bom quanto ou melhor que o resultado alcançado pelo algoritmo gerado a partir deste problema (vamos chamar de algoritmo original), pode-se afirmar que o algoritmo recomendado é útil. Chamamos essa metodologia de precisão na otimização. Vale salientar que os algoritmos gerados presentes na meta-base adotaram 5.000 iterações como critério de parada. Logo, o mesmo critério de parada foi adotado para a execução dos algoritmos recomendados, sendo estes executados 20 vezes e o valor médio do melhor fitness, armazenado.

Também foi incluída na comparação uma abordagem de seleção aleatória. Para cada problema considerado, foi selecionado aleatoriamente 1 algoritmo, desconsiderando-se o algo- ritmo original de cada problema. O algoritmo adotou 5.000 iterações como critério de parada e executou 20 vezes, tendo o seu melhor fitness armazenado. O procedimento de seleção aleatória foi realizado para cada problema 20 vezes, com reposição, e o fitness médio resultante dos 20 algoritmos é a média dos fitness médios calculados. O cálculo do desvio padrão médio acontece da mesma forma.

A Tabela 13 mostra os valores de fitness do algoritmo original, do algoritmo recomendado e da abordagem de seleção aleatória para cada um dos 32 problemas de otimização. Constatou-se,

Capítulo 5. Experimentos e Resultados 87

com a aplicação do teste de Wilcoxon, que os valores de fitness alcançados pelos algoritmos recomendados são estatisticamente superiores aos resultados da abordagem aleatória em 100% dos problemas. Além disso, também foi constatado que os resultados alcançados pelos algoritmos recomendados foram estatisticamente iguais aos valores de fitness dos algoritmos originais em 84.3% dos problemas. Os resultados que não atingiram significância estatística ocorreram, em sua maioria, nas categorias de problemas Plate e Valley. Um possível motivo para este insucesso talvez seja a dificuldade das métricas caracterizarem problemas destas categorias devido a grande semelhança entre eles. Vale salientar que embora certos algoritmos não tenham alcançado semelhança estatística com os respectivos resultados do algoritmo original, eles atingiram resultados próximos ao ótimo. Essa informação mostra que o sistema pode recomendar algoritmos úteis para o problema de entrada. Um estudo mais aprofundado a respeito da precisão na recomendação de algoritmos, visando responder estes questionamentos, foi realizado e será apresentado adiante.

Também é válido investigar se o algoritmo recomendado para o problema de entrada é de fato o melhor a ser recomendado dentre os algoritmos disponíveis. Pode acontecer de um algoritmo gerado ser bom para o problema de entrada, porém existem outros algoritmos que atingiriam resultados ainda melhores caso tivessem sido recomendados. Chamaremos esta avaliação de precisão na recomendação (RA) e trata diretamente da capacidade das métricas em representar o problema.

Para o cálculo do RA, considere que o algoritmo Dr foi recomendado para o problema P . O valor de RA para o problema P é definido a partir da criação de um ranking de algoritmos, onde o objetivo é verificar a posição de Drno ranking. Para a criação de um ranking de algoritmos para P , cada algoritmo presente na meta-base é aplicado a P , sendo executado com critério de parada de 5.000 iterações, por 20 vezes e o seu valor médio do melhor fitness, armazenado. Deste modo, tem-se um ranking de algoritmos que foram ordenados pelo seu desempenho no problema P . Este ranking é utilizado para verificar a posição em que o algoritmo inicialmente recomendado Drpara P se encontra. O valor da precisão da recomendação pode ser calculado da seguinte forma:

RA = (T + 1 − ρ(Dr))

T × 100%, (5.1)

onde T é o total de possíveis algoritmos a serem recomendados para P e ρ(Dr) é a posição de Dr no ranking de algoritmos. Esta métrica é interessante pois compensa a precisão na otimização. Ao invés de fazer uma análise absoluta do desempenho, esta métrica faz uma análise relativa, comparando a recomendação realizada com todas as possíveis recomendações e assim saber quão boa foi a recomendação de fato. Vale salientar que cada posição do ranking pode ser dividida entre dois ou mais algoritmos, ou seja, podem existir algoritmos ocupando a mesma posição por terem alcançado resultados estatisticamente similares. Para a realização deste experimento, foi utilizada novamente o procedimento leave-one-out.

Tabela 13 – Comparação entre os valores de fitness da recomendação e dos valores de fitness dos algoritmos originais, para cada problema.

Categoria Problemas Algoritmos

Gerado Recomendado Aleatório

Bowl

f1 1.22e-188(± 1.33e-125) 2.34e-175(± 2.35e-118) 2.61e-31(± 1.86e-05)H

f2 1.42e-123(± 1.55e-80) 2.76e-118(± 1.86e-77) 1.746e-34(± 1.17e-06)H

f3 1.67e-169(± 1.49e-126) 3.27e-162(± 1.31e-125) 1.16e-29(± 2.81e-04)H

f4 1.33e-168(± 2.21e-129) 4.96e-163(± 1.36e-121) 2.23e-42(± 1.23e-05)H

f5 2.63e-172(± 1.87e-135) 2.19e-165(± 1.04e-125) 1.36e-40(± 1.46e-10)H

f6 1.43e-72(± 1.32e-61) 1.31e-64(± 1.14e-54) 1.76e-09(± 1.29e-04)H

f7 2.41e-169(± 1.36e-137) 2.65e-165(± 1.96e-130) 2.76e-46(± 2.44e-06)H

f8 2.32e-84(± 2.38e-56) 1.77e-71(± 1.56e-42) 2.76e-10(± 1.82e-06)H

Plate

f9 1.20e-44(± 1.32e-21) 1.24e-27(± 2.37e-07)H 2.13e-04(± 0.048)H

f10 1.43e-68(± 2.98e-32) 2.44e-58(± 1.29e-28) 1.76e-11(± 0.057)H

f11 2.51e-31(± 2.23e-19) 4.65e-23(± 1.77e-09) 0.23(± 1.34)H

f12 1.31e-49(± 1.65e-23) 3.15e-38(± 1.33e-20) 1.23e-08(± 0.34)H

f13 1.14e-87(± 2.24e-54) 1.76e-75(± 1.42e-51) 1.67e-19(± 1.86e-04)H

f14 3.12e-26(± 2.76e-14) 3.4e-10(± 1.12e-04)H 0.76(± 0.45)H

f15 1.18e-57(± 1.76e-37) 1.39e-49(± 1.39e-34) 0.54(± 0.65)H

f16 1.73e-53(± 3.47e-43) 1.62e-43(± 1.43e-39) 2.76e-07(± 0.034)H

Valley

f17 2.97e-25(± 1.97e-22) 2.85e-15(± 2.83e-13) 0.23(± 1.23)H

f18 6.54e-24(± 1.32e-18) 2.1e-08(± 2.13e-04)H 1.25(± 3.24)H

f19 8.25e-11(± 1.45e-08) 3.21e-07(± 2.78e-06) 2.76(± 2.34)H

f20 1.12e-20(± 2.97e-15) 5.91e-16(± 1.34e-11) 1.56e-04(± 3.4e-02)H

f21 1.24e-52(± 2.76e-42) 3.54e-46(± 2.21e-42) 2.19(± 2.86)H

f22 1.07e-39(± 3.13e-28) 5.3e-25(± 3.65e-23) 1.05e-04(± 1.86e-02)H

f23 1.16e-19(± 1.39e-12) 1.66e-12(± 1.73e-10) 3.43(± 3.56)H

f24 1.56e-19(± 2.38e-11) 1.64e-12(± 1.49e-10) 3.55(± 2.89)H

Many

f25 1.41e-44(± 1.34e-32) 1.97e-31(± 1.84e-27) 1.14e-06(± 1.75e-02)H

f26 0.0(± 0.0) 0.0(± 0.0) 7.98(± 4.29)H

f27 2.69e-24(± 3.65e-18) 3.0e-14(± 2.43e-12) 4.76(± 3.08)H

f28 2.18e-59(± 2.43e-44) 2.36e-32(± 3.76e-23)H 2.71(± 2.97)H

f29 1.13e-26(± 1.76e-19) 1.35e-19(± 1.33e-16) 6.97(± 2.17)H

f30 1.23e-38(± 1.37e-24) 2.49e-31(± 1.38e-21) 8.76(± 3.04)H

f31 0.0(± 0.0) 0.0(± 0.0) 4.90(± 5.87)H

f32 1.25e-23(± 1.45e-18) 2.34e-08(± 1.21e-04)H 8.76(± 4.19)H

A tabela 14 apresenta quatro informações a respeito da recomendação para cada problema: o algoritmo recomendado (chama-se di o algoritmo gerado a partir do problema fi), algoritmos que estão na primeira colocação do ranking (atingiram resultados estatisticamente iguais), o valor de RA e a posição do algoritmo recomendado no ranking de possíveis algoritmos a serem recomendados para o problema de entrada.

Como pode ser visto na tabela 14, 81% dos algoritmos recomendados eram, de fato, os melhores algoritmos a serem recomendados. Nos outros 19% dos algoritmos recomenda- dos, 100% foram a segunda melhor recomendação possível. Um comportamento interessante identificado nos resultados da recomendação é que a maior parte dos erros na recomendação acon- teceram em problemas que pertencem a categorias diferentes mas que aparentam semelhanças.

Capítulo 5. Experimentos e Resultados 89

Isto é percebido com clareza nos problemas f9a f18, que pertencem às categorias Plate e Valley. Estas duas categorias apresentam características da superfície similares, aumentando as chances de falhas na recomendação do melhor algoritmo. É possível, através dos resultados apresentados na tabela 14, que esta seja a razão de alguns resultados não terem sido bem sucedidos como mostrado na tabela 13. Por outro lado, as categorias mais divergentes (categorias Bowl e Many), ou seja, mais distantes entre si com relação às características da superfície, apresentaram uma alta precisão na recomendação. Isso se deve ao fato de que mesmo que o algoritmo recomendado não seja o melhor, este algoritmo é proveniente de problemas da mesma categoria, aumentando as chances de um bom resultado.

Tabela 14 – Resultados da recomendação da abordagem proposta para cada problema.

Categoria Problemas algoritmo recomendado Melhor algoritmo RA Ranking

Bowl f1 d3 d2, d3, d4, d5, d6, d7, d8 100% 1o f2 d1 d1, d3, d4, d5, d6, d7, d8 100% 1o f3 d4 d1, d2, d4, d5, d6, d7, d8 100% 1o f4 d1 d1, d2, d3, d5, d6, d7, d8 100% 1o f5 d6 d1, d2, d3, d4, d6, d7, d8 100% 1o f6 d1 d1, d2, d3, d4, d5, d7, d8 100% 1o f7 d8 d1, d2, d3, d4, d5, d6, d8 100% 1o f8 d5 d1, d2, d3, d4, d5, d6, d7 100% 1o Plate f9 d18 d10, d14, d15 96.8% 2o f10 d9 d9, d14, d15 100% 1o f11 d14 d10, d14, d15 100% 1o f12 d14 d13, d14, d15, d16 100% 1o f13 d12 d11, d12, d14, d15 100% 1o f14 d17 d10, d11, d12 96.8% 2o f15 d10 d13, d14, d16 96.8% 2o f16 d13 d12, d13, d14, d15, d17 100% 1o Valley f17 d18 d18, d19, d21 100% 1o f18 d15 d17, d19, d21 96.8% 2o f19 d14 d17, d18, d21 96.8% 2o f20 d23 d17, d22, d23, d24 100% 1o f21 d19 d17, d18, d19 100% 1o f22 d20 d17, d20, d23, d24 100% 1o f23 d22 d20, d22, d24 100% 1o f24 d23 d20, d22, d23 100% 1o Many f25 d29 d27, d29, d30 100% 1o f26 d31 d28, d31 100% 1o f27 d32 d29, d32 100% 1o f28 d26 d26, d29, d31 100% 1o f29 d25 d25, d27, d30 100% 1o f30 d25 d25, d29 100% 1o f31 d26 d26, d28 100% 1o f32 d26 d27, d29 96.8% 2o