Compare metaheurísticas com rigor estatístico.
Você rodou uma batelada de instâncias com dois ou mais algoritmos e coletou os valores da função objetivo. Este ambiente conduz você pelas três etapas do Talbi — desenho experimental, medição e reporte — e recomenda qual teste aplicar sem que você precise decidir sozinho.
Desenho
Defina objetivos, separe instâncias de calibração e avaliação, garanta parâmetros únicos.
Medição
Carregue os resultados, escolha a referência do gap e deixe o assistente indicar o teste.
Reporte
Boxplots, diagrama CD, TTT plots e análise ordinal para apresentar os resultados.
Como usar
Comece pela aba Dados (há dois exemplos prontos, com e sem tempo), passe pelo assistente de decisão se tiver dúvida sobre qual teste usar, e veja os resultados em Análise estatística e Reporte. Cada análise tem um botão explicativo, e o card Exportar gera as tabelas e o resumo prontos para o relatório.
Base conceitual
Derrac et al. (2011) — testes não-paramétricos e procedimentos pós-hoc para comparar algoritmos.
Demšar (2006) — comparação de classificadores sobre múltiplas bases; diagrama de diferença crítica.
Checklist antes de coletar.
Antes de qualquer teste, o Talbi lembra que o experimento precisa ser justo. Marque cada item conforme garantir a condição — o resultado estatístico só é confiável se o desenho for.
Dados & medição.
Cole os resultados direto de uma planilha ou carregue um CSV. Linhas são instâncias; colunas são algoritmos. Defina o sentido do objetivo e como as execuções estocásticas são resumidas.
Entrada
Configuração da medição
Pré-visualização
Qual teste usar?
Responda às perguntas. O caminho acende na árvore ao lado, reconciliando a figura 1.28 do Talbi com o procedimento pós-hoc moderno.
Análise estatística.
Descritiva com normalização, teste par a par, Friedman, pós-hoc com diagrama de diferença crítica, análise ordinal e taxa de sucesso — tudo calculado a partir dos seus dados, respeitando a métrica ativa.
O que esta tabela mostra? (e por que normalizar)
Esta é uma análise descritiva: resume os resultados de cada algoritmo sobre todas as instâncias. Ela ainda não diz se uma diferença é significativa — isso é papel dos testes mais abaixo.
Por que existem dois modos. As instâncias costumam ter escalas muito diferentes (uma na ordem de 10, outra de 10 000). Se agregarmos os valores brutos, a média e o desvio-padrão ficam dominados pelas instâncias grandes — a média vira quase só o valor da maior instância, e a comparação perde sentido. Por isso o padrão é o modo Gap %.
- Gap % (recomendado): para cada instância, mede o quanto o algoritmo ficou acima da referência, em porcentagem —
(valor − ref)/|ref| × 100em minimização (invertido em maximização). Assim toda instância entra na mesma escala (0% = referência), e o gap médio é comparável. É a ideia da seção 1.7.2.1 do Talbi. - Bruto: agrega os valores originais. Só use quando as instâncias têm escala parecida; caso contrário aparece um aviso.
De onde vem a referência (definida na aba Dados):
- Melhor da linha (padrão, sem dado externo): a referência de cada instância é o melhor resultado entre os algoritmos naquela linha. O vencedor de cada instância fica com 0%; os demais mostram quanto ficaram atrás.
- Coluna BKS/ótimo: se você informar a coluna com a melhor solução conhecida ou o ótimo, o gap é medido em relação a ela — a interpretação clássica de "% acima do ótimo".
Colunas da tabela. Média/mediana do gap (valor típico; a mediana é robusta a outliers), desvio-padrão (dispersão → robustez, Talbi 1.7.2.3), melhor/pior e o IC 95% m ± 1,96·σ/√n. O ★ marca o menor gap médio — um indício, não uma prova; a significância vem no teste.
Vale lembrar: os testes (Wilcoxon, Friedman) já são livres de escala, pois comparam dentro de cada instância — a normalização aqui é só para a leitura descritiva.
Como esta comparação funciona?
Como os dois algoritmos rodaram nas mesmas instâncias, os dados são pareados: para cada instância calculamos a diferença A − B. A pergunta é se essa diferença é sistemática ou fruto do acaso.
1. Shapiro-Wilk (normalidade). Antes de escolher o teste, verificamos se as diferenças têm distribuição aproximadamente normal. Se p ≥ α, são compatíveis com normal e o teste paramétrico vale; se p < α, não são normais e o caminho seguro é o não-paramétrico. É a primeira decisão da figura 1.28 do Talbi.
2. Os dois testes.
- t pareado compara a média das diferenças. Mais potente quando os dados são normais, porém sensível a outliers. Tamanho de efeito: d de Cohen.
- Wilcoxon signed-rank compara os postos das diferenças, sem supor normalidade — o mais usado em benchmarks de metaheurística. Tamanho de efeito: correlação rank-biserial.
3. Lendo o p-valor. A hipótese nula (H₀) é "não há diferença". Se p < α (por padrão 0,05), rejeitamos H₀: a diferença é significativa. Se p ≥ α, não há evidência suficiente de diferença.
Atenção: significância não é magnitude. Um p pequeno com efeito minúsculo pode não ter valor prático — olhe também o tamanho de efeito e as médias da tabela A.
Como o Friedman funciona?
Com três ou mais algoritmos, comparar par a par multiplicaria os testes e inflaria o erro. O Friedman resolve com um teste único.
1. Postos por instância. Em cada instância (bloco), os algoritmos são ordenados: posto 1 para o melhor, 2 para o segundo, e assim por diante (empates recebem posto médio). Como isso é feito dentro de cada instância, a diferença de escala entre instâncias desaparece — por isso o teste é livre de escala.
2. Posto médio. Cada algoritmo recebe a média dos seus postos ao longo das instâncias. Menor posto médio = melhor desempenho geral.
3. O teste. A hipótese nula (H₀) é "todos têm o mesmo posto médio". A estatística de Friedman segue uma distribuição qui-quadrado com k−1 graus de liberdade (k = nº de algoritmos). Se p < α, rejeitamos H₀: pelo menos um algoritmo difere — mas o teste não diz quais. Para isso vem o pós-hoc (próxima parte). Mostramos também o Iman-Davenport, uma correção menos conservadora baseada na distribuição F.
Só instâncias com valor para todos os algoritmos entram (blocos completos). A coluna de referência, se houver, é excluída.
O que o pós-hoc faz?
O Friedman só diz que existe alguma diferença. Para saber entre quem, comparamos os pares — mas fazer vários testes infla a chance de um falso positivo, então é preciso corrigir.
Diagrama de diferença crítica (Nemenyi). Calcula uma diferença crítica CD = qα·√(k(k+1)/6n). No eixo de postos médios, algoritmos cuja distância é menor que o CD não são distinguíveis e ficam unidos por uma barra grossa. É o padrão visual para comparar muitos algoritmos em muitas instâncias (Demšar 2006).
Matriz de p-valores (Holm/Bonferroni). Para cada par, um teste sobre a diferença de postos médios, com os p-valores ajustados para múltiplas comparações. Holm é menos conservador que Bonferroni e recomendado por Derrac et al. (2011). Células em destaque = diferença significativa ao nível α.
Nemenyi (o diagrama) é mais conservador; Holm (a matriz) costuma detectar mais diferenças. Ver os dois lado a lado ajuda a interpretar o resultado.
O que é a análise ordinal?
Em vez de agregar valores, agrega posições. Dois métodos, como no Talbi 1.7.2.5:
- Contagem de Borda. Em cada instância, um algoritmo com posto
oganhaopontos (posto 1 = melhor). Somando os pontos de todas as instâncias, o menor total é o melhor. É a mesma ordenação do posto médio do Friedman. - Índice de Copeland. Baseado em duelos: para cada par, conta em quantas instâncias um algoritmo vence o outro. O índice de cada algoritmo é o total de vitórias menos derrotas contra todos os demais. Maior é melhor.
Borda soma posições; Copeland conta confrontos. Costumam concordar — quando discordam, é sinal de perfis diferentes (um algoritmo consistente vs. um que ganha por muito em poucas instâncias).
Como a taxa de sucesso é calculada?
Taxa de sucesso = execuções bem-sucedidas / total (Talbi 1.7.2.4). Uma execução é "sucesso" quando atinge a solução de referência (ótimo, BKS ou um alvo dado).
Como aqui há um valor por instância, ela vira a fração de instâncias resolvidas dentro de ε% da referência. Com ε = 0 exige atingir exatamente a referência — e, se a referência for "melhor da linha", isso equivale a quantas vezes o algoritmo venceu a instância.
O Talbi define ainda a taxa de desempenho, que divide pelo número de avaliações da função objetivo — ela entra quando o módulo de tempo/avaliações existir.
Reporte & visualização.
Boxplots por algoritmo e o trade-off qualidade × tempo, mais a exportação das tabelas e do resumo para o seu relatório.
Como ler um boxplot?
O boxplot (Tukey, citado no Talbi fig. 1.30) resume a distribuição sem supor normalidade:
- A caixa vai do 1º quartil (Q1) ao 3º (Q3) — os 50% centrais dos dados.
- A linha em verde é a mediana.
- Os bigodes alcançam o dado mais distante dentro de 1,5×IQR; pontos além deles são outliers.
A altura da caixa mostra a dispersão (robustez); assimetria aparece quando a mediana não fica no centro. Em Gap %, cada instância entra normalizada pela referência, então as caixas são comparáveis entre algoritmos; em Bruto, use só com instâncias de escala parecida.
O que o trade-off mostra?
Qualidade e tempo quase sempre estão em tensão: um algoritmo que acha soluções melhores mas demora muito não é estritamente melhor. Testar cada métrica isolada não captura isso (Talbi fig. 1.29b).
Cada algoritmo vira um ponto: eixo horizontal = gap médio de qualidade (menor = melhor), eixo vertical = tempo médio em segundos (menor = melhor). Logo, o canto inferior esquerdo é o ideal.
Um algoritmo domina outro se é melhor (ou igual) em ambos os eixos. Os que ninguém domina formam a fronteira de Pareto (em verde): são as escolhas racionais — cada um troca um pouco de qualidade por um pouco de tempo. Os pontos fora da fronteira são dominados: existe outro algoritmo melhor nos dois quesitos.
A qualidade usa gap % (a referência da aba Dados) para ser comparável entre instâncias; o tempo, segundos.
O que é exportado?
O bloco reúne, no formato escolhido: a tabela descritiva (métrica e modo atuais), o ranking médio do Friedman com a estatística e o p-valor, os pares significativos do pós-hoc, e um resumo em texto que costura tudo — incluindo a fronteira de Pareto quando há tempo.
LaTeX usa booktabs (\toprule/\midrule/\bottomrule) e escapa caracteres especiais; Markdown gera tabelas com |. Reproduzibilidade é uma recomendação explícita do Talbi (1.7.3).
Próximas visualizações
Já implementado — está na aba Análise estatística, no card de pós-hoc (E), junto da matriz de p-valores.
Distribuição empírica do tempo até atingir um alvo: ordena os tempos e plota (tᵢ, pᵢ) com pᵢ = (i − ½)/n. Pede várias execuções cronometradas por instância.