5.5 Estat´ıstica no Estudo de Parˆametros
6.5.1 Medidas com Rela¸c˜ao ao Tempo de Execu¸c˜ao
As medidas que focam na velocidade com que o algoritmo consegue solucionar o problema s˜ao listadas a seguir:
6.5 Medidas de Desempenho Metodologia de Experimenta¸c˜ao
Tempo de Execu¸c˜ao
O tempo de execu¸c˜ao corresponde `a medida do tempo de processamento da me- taheur´ıstica em uma dada plataforma computacional. O uso dessa medida ´e dos mais controversos.
V´arios autores (Coffin e Saltzman, 2000; Eiben e Jelasity, 2002; Hooker, 1995; Mc- Geoch, 1996; Rardin e Uzsoy, 2001) n˜ao recomendam o uso do tempo de execu¸c˜ao como medida de desempenho. O tempo de execu¸c˜ao ´e dif´ıcil de reproduzir, mesmo quando se utiliza a mesma configura¸c˜ao da plataforma computacional. Fatores como a linguagem de programa¸c˜ao utilizada, habilidades do programador e processos em execu¸c˜ao em segundo plano, tornam dif´ıcil reproduzir um teste e obter o mesmo tempo de execu¸c˜ao. Outra dificuldade ´e dimension´a-lo para outra plataforma computacional.
O tempo de execu¸c˜ao ´e uma medida que pode ser influenciada pela ordem das observa¸c˜oes. ´E preciso ter o cuidado de aleatorizar a ordem de execu¸c˜ao dos testes para minimizar essa influˆencia.
Alguns dos testes estat´ısticos que podem ser aplicados na an´alise dos dados coletados assumem que os dados tenham uma distribui¸c˜ao normal. Os tempos de execu¸c˜ao s˜ao frequentemente n˜ao-normais (Bartz-Beielstein, 2006; Bartz-Beielstein e Preuss, 2010; Chiarandini et al., 2007; Coffin e Saltzman, 2000). De acordo com Chiarandini et al. (2007), o tempo de execu¸c˜ao de metaheur´ısticas frequentemente apresenta uma distri- bui¸c˜ao exponencial. Eiben e Jelasity (2002) sugerem que para medir a velocidade do algoritmo ´e melhor usar a quantidade de avalia¸c˜oes executadas at´e encontrar a melhor solu¸c˜ao.
Mesmo com todos os pontos desfavor´aveis ao uso do tempo de execu¸c˜ao como medida de desempenho, Johnson (2002) defende que ele seja coletado e relatado em todos os experimentos, pois pode trazer mais informa¸c˜oes ao leitor. Pode dar ao leitor uma ideia se o tempo de execu¸c˜ao ´e competitivo ou se um algoritmo ´e claramente mais r´apido do outro.
A natureza estoc´astica dos AE introduz uma variabilidade aleat´oria na resposta produzida pelo algoritmo: a solu¸c˜ao obtida pode variar entre uma execu¸c˜ao e outra, e mesmo quando a mesma solu¸c˜ao ´e obtida, o esfor¸co computacional requerido ´e, em geral, diferente entre execu¸c˜oes do mesmo algoritmo. Nesse caso, tˆem-se duas poss´ıveis medidas de desempenho: qualidade da solu¸c˜ao e esfor¸co computacional. Em alguns
Metodologia de Experimenta¸c˜ao 6.5 Medidas de Desempenho
casos, quando a convergˆencia pode ser assegurada, seria poss´ıvel considerar o esfor¸co computacional como o ´unico indicador de desempenho relevante para o algoritmo.
Na avalia¸c˜ao de desempenho de computadores tradicional, Hennessy e Patterson (2006) consideram o tempo de execu¸c˜ao real dos programas como a ´unica medida de desempenho consistente e confi´avel. Tempos de execu¸c˜ao tˆem sido continuamente atrapalhados pela variabilidade do desempenho do computador, em especial no caso de programas paralelos que s˜ao afetados por concorrˆencias no acesso aos dados, esca- lonamento de processos, mecanismos de sincroniza¸c˜ao, disputas por recursos compar- tilhados, entre outros. Mazouz et al. (2011) confirmam que os processadores multicore trazem ainda mais variabilidade aos tempos de execu¸c˜ao.
Os tempos de execu¸c˜ao podem ser definidos de maneiras diferentes, dependendo do que ´e contabilizado. A defini¸c˜ao mais direta de tempo ´e chamada de tempo wall clock, que consiste no tempo decorrido para completar uma tarefa, incluindo o tempo de acesso a disco, acesso a mem´oria, atividades de entrada e sa´ıda, dentre outros. V´arios termos denotam esse tempo, tais como, tempo de resposta, tempo decorrido e tempo total de processamento.
Na computa¸c˜ao paralela, o tempo total de processamento ´e utilizado em uma f´or- mula chamada speedup. O speedup ´e a medida mais utilizada na avalia¸c˜ao do desem- penho paralelo.
Quantidade de Avalia¸c˜oes
A quantidade de avalia¸c˜oes corresponde ao n´umero de avalia¸c˜oes executadas pela metaheur´ıstica. Essa medida fornece um bom indicativo do custo computacional do algoritmo, se for considerado que todas as avalia¸c˜oes gastam a mesma quantidade de tempo, e que as avalia¸c˜oes consomem a maior parte do tempo de execu¸c˜ao do algoritmo. Entretanto, quando algumas avalia¸c˜oes demoram mais do que outras, as quantidade de avalia¸c˜oes dos dois algoritmos seriam pr´oximos, mas um algoritmo seria mais lento do que o outro. Quando um algoritmo usa alguma t´ecnica de reparo chamada pela rotina de avalia¸c˜ao, um algoritmo em que o reparo ´e chamado com frequˆencia ter´a avalia¸c˜oes que demoram mais do que outro algoritmo em que pouco reparo ´e necess´ario. Outro caso em que a quantidade de avalia¸c˜oes pode n˜ao ser representativo do custo computacional ´e quando o tempo gasto com a avalia¸c˜ao ´e muito pequeno, e outros componentes do algoritmo possuem um grande impacto no tempo de execu¸c˜ao (Eiben
6.5 Medidas de Desempenho Metodologia de Experimenta¸c˜ao
e Jelasity, 2002).
Quantidade de Gera¸c˜oes ´
E uma m´etrica muito utilizada em AE e ´e simples de interpretar: quanto menor a quantidade de gera¸c˜oes melhor o seu desempenho computacional. Por´em, na compara- ¸c˜ao entre experimentos publicados pode n˜ao existir uma rela¸c˜ao direta com o n´umero de avalia¸c˜oes por gera¸c˜ao, uma vez que o tamanho da popula¸c˜ao pode ser diferente. Al´em disso, o tamanho da popula¸c˜ao pode variar ao longo das gera¸c˜oes para um mesmo al- goritmo. A quantidade de gera¸c˜oes ´e quase sempre inferior `a quantidade de avalia¸c˜oes, no melhor caso s˜ao equivalentes.
Essa m´etrica pode n˜ao ser v´alida para compara¸c˜ao de algoritmos distintos, mas poderia ser usada na compara¸c˜ao de duas configura¸c˜oes para uma mesmo algoritmo, como no ajuste de parˆametros do algoritmo.