Você está na página 1de 4

Estudo de caso 01

RESUMO
Este documento apresenta a investigação de um experimento com o intuito de
avaliar se a nova versão de um software é superior em desempenho, se comparado com
sua versão atual. No presente trabalho, a análise de desempenho baseia-se em um menor
custo de execução e/ou uma menor variância. Para realizar a análise do experimento,
tais parâmetros serão analisados por meio da execução de um algoritmo evolucionário
em R, usado para coletar os dados.
O trabalho foi realizado e compilado utilizando a plataforma RStudio, e para a
geração do relatório e dos resultados foi utilizada a ferramenta R Markdown. As seções
apresentadas no trabalho apresentam a metodologia utilizada, os resultados e análises
relevantes para o contexto.
Design do Experimento
Sabe-se através do enunciado do problema, que a versão atual de um
determinado sistema é conhecida, com base em extensa experiência passada, por ter
uma distribuição de custos de execução com média populacional µ0=50 e variação
populacional σ 20=100 (as unidades específicas não são importante neste experimento em

particular), isto é, com desvio padrão de σ 0 =10.

Uma nova versão deste software é desenvolvida e deseja-se investigar se isso


resulta em melhorias de desempenho em relação ao padrão atual. Para investigar esta
questão em particular, será realizada uma análise experimental. O desempenho pode ser
avaliado através dos custos de execução do algoritmo, para uma dada amostra de
execuções. Também pode ser avaliado pelo menor custo médio de execução e / ou
menor variação nos custos de execução. Portanto, quanto menor for a média desses
custos, e quanto menor for sua variância, conclui-se que houve um ganho em
desempenho na nova versão do algoritmo.
O primeiro teste de hipótese definido para o presente experimento, analisa se
houve diminuição no custo médio de execução. A hipótese nula H 0 indica se não houve
melhora no desempenho, enquanto a alternativa H 1 indica que houve melhoria. O valor
utilizado como variável de comparação no teste de hipótese é a média conhecida da
população, para o software na versão atual, de µ0=50 :

{ H 0=µ0 ≥50
H 1 :µ 0 <50

O segundo teste de hipótese definido analisa se houve diminuição na variação


nos custos de execução. Nesse caso, o valor usado para comparação no teste de hipótese
é a variância conhecida da população, de σ 20=100:

{
2
H 0=σ 0 ≥ 100
2
H 1 :σ 0 <10 0
Para o teste, assumiu-se o nível de significância desejado, a probabilidade de
rejeitar a hipótese nula quando ela é verdadeira, como α =0 , 01. Um valor de tamanho
de efeito como δ ¿=4 , indicando que a magnitude da diferença entre a média dos custos
de execução que forem menor que δ ¿serão consideradas irrelevantes. E uma potência
desejada de π=1−β=0.8. Para calcular o tamanho amostral usa-se a função
power.t.test.
# alfa = 1% para 99% de intervalo de confiança
alfa <- 0.01
# desvio padrão conhecido da população
sigma_0 <- 10
# define o efeito mínimo de interesse
delta <- 4
# potência do teste
potencia <- 0.8
# Cálculo de tamanho amostral
N <- ceiling(power.t.test(n=NULL,power = potencia, delta = delta, sd =
sigma_0,
sig.level = alfa, type = "one.sample", alternative = "one.sided")$n)
if (!require(ExpDE, quietly = TRUE)){
install.packages("ExpDE") # <-- you only need to install it once
}
O valor encontrado para o tamanho amostral foi de N=66.
Descrição da coleta de dados
Para a coleta de dados, utilizou-se um algoritmo de otimização evolucionária,
fornecidas no enunciado do problema. Com um conjunto de parâmetros específicos,
definidos a seguir:
# Cálculo de tamanho amostral
N <- ceiling(power.t.test(n=NULL,power = potencia, delta = delta, sd =
sigma_0,
sig.level = alfa, type = "one.sample", alternative = "one.sided")
$n)
if (!require(ExpDE, quietly = TRUE)){
install.packages("ExpDE") # <-- you only need to install it once
}
# Set up the data-generating procedure
library(ExpDE)
mre <- list(name = "recombination_bin", cr = 0.9)
mmu <- list(name = "mutation_rand", f = 2)
mpo <- 100
mse <- list(name = "selection_standard")
mst <- list(names = "stop_maxeval", maxevals = 10000)
mpr <- list(name = "sphere", xmin = -seq(1, 20), xmax = 20 + 5 * seq(5, 24))
# Generate a single observation
ExpDE(mpo, mmu, mre, mse, mst, mpr,
showpars = list(show.iters = "none"))$Fbest
Portanto, o presente experimento tem como objetivo realizar inferências
estatísticas da populações os possíveis resultados do novo algoritmo. Para através dos
resultados comparar com a versão atual. Para isso, gera um amostra com N=66
observações, onde N é o tamanho da amostral. As rotinas a seguir cria o data.frame
dados, onde são armazenadas as N observações da nova versão, avaliadas a cada
iteração e um loop. Na rotina abaixo, verifica-se se o arquivo “dados_teste_01.csv” já
existe. Caso afirmativo, somente o carrega. Caso contrário cria um novo arquivo.
# Nome do arquivo com os dados
arquivo_01 = "dados_teste_01.csv"
# Verifica se o arquivo já existe na pasta. Se existir, carrega o arquivo
if (file.exists(arquivo_01)){
dados <- read.csv(file = arquivo_01)
}else{
# Se não existir os dados, cria as amostras
custo <- rep(0, N) # cria um vetor de zeros
for (i in 1:N){
custo[i] <- ExpDE(mpo, mmu, mre, mse, mst, mpr,
showpars = list(show.iters = "none"))$Fbest # Cria as amostras
das execuções do algoritmo
}
#print("check1")
dados<-data.frame(custo)
colnames(dados) <- c("amostra", "custo")
write.csv(dados, file = arquivo_01)
}
Os dados coletados se encontram no Anexo A e no arquivo
“dados_teste_01.csv”.
Análise exploratória de dados
A análise exploratória de dados consisti em resumir e organizar os dados
coletados através de tabelas, gráficos ou medidas numéricas, e a partir dos dados
resumidos procurar alguma regularidade ou padrão nas observações - interpretar os
dados. Alguns exemplos de análises exploratórias são os gráficos de Boxplot e o
Histograma.

Você também pode gostar