A análise suavizada encontrou seu caminho na análise do fluxo principal de algoritmos? É comum que os designers de algoritmos apliquem análises suavizadas a seus algoritmos?
A análise suavizada encontrou seu caminho na análise do fluxo principal de algoritmos? É comum que os designers de algoritmos apliquem análises suavizadas a seus algoritmos?
Respostas:
Eu posso estar errado, mas vejo a análise suavizada como uma maneira de explicar o comportamento prático de algoritmos que têm más garantias teóricas (simplex, k-means e assim por diante). Não tenho certeza do que significaria usar a análise suavizada na prática, exceto para justificar o uso de uma heurística específica com pior desempenho do pior caso ("Minha heurística tem um comportamento do pior caso do tipo blá-blá, mas uma análise suave indica que fazer bem na prática etc etc ")
A maneira como as pessoas analisam algoritmos no mundo real é muito diferente da academia. Enquanto na academia o objetivo é encontrar um limite superior comprovadamente correto no tempo de execução, na vida real o objetivo é entender como o algoritmo funciona e quais ajustes podem melhorar o tempo de execução. Existem dois métodos principais que são banidos na academia, mas usados na prática:
Dito isto, não acho que seja muito comum analisar um algoritmo na prática, além de adicionar algum texto de preenchimento em uma publicação acadêmica relacionada. O foco está na engenharia de software ou na otimização de baixo nível, dependendo do assunto.
Por fim, a análise suavizada é uma heurística que pode ser usada para explicar por que os algoritmos funcionam melhor na prática do que o pior caso sugere - ou seja, já que algumas das entradas são "aleatórias" em algum sentido. Essa heurística pode ser usada para aproximar o comportamento do algoritmo, se alguém estiver usando o método de aproximação.