Abstract:
|
A análise da eficiência de um código é fundamental para a detecção de gargalos de desempenho e otimização do uso de recursos. O cálculo da complexidade do tempo de execução, referente ao período que um algoritmo leva para resolver determinado problema em função do tamanho da entrada, é um dos principais meios de medição desse parâmetro. Entretanto, de acordo com o Problema da Parada, cunhado por Martin Davis, é impossível elaborar um método geral para determinar se um programa irá parar ou executar indefinidamente. Portanto, também é impossível escrever um programa que estabeleça o tempo de execução de outro programa. Desse modo, é necessário trabalhar com aproximações para a classificação dessa complexidade. Técnicas de aprendizado de máquina vêm sendo empregadas para classificar a complexidade com base em características de código, como o número de estruturas condicionais e de loops aninhados. O banco de dados disponível para esse tipo de pesquisa é restrito, tanto em variedade quanto tamanho. Por isso, a pesquisa realizada gerou um artigo, comparando três modelos de classificação, apresentado na conferência BRACIS. Em seguida, a pesquisa foi continuada expandindo o número de amostras do banco de dados mesclando datasets de trabalhos relacionados com um dataset próprio, o Augustives. Esses bancos de dados são usados no treinamento de modelos com Autogluon, um método de aprendizado de máquina automatizado, que além de treinar uma variedade de técnicas, elabora também ensembles que as combinam em busca de maior acurácia. A partir dessa classificação, atingiu-se um máximo de 79,05\% de acurácia para classe de complexidade e de 88,02\% para eficiência. Por fim, o modelo que apresentou a melhor relação entre acurácia e tempo de resposta foi utilizado para a criação de uma API(Application Programming Interface) Rest, chamada RTCC, capaz receber um programa e retornar sua classe de complexidade e eficiência. Dentre as melhorias possíveis para o método de AutoML implementado, optou-se por tentar analisar sua explicabilidade. Para isso, a pesquisa utilizou o framework Trustee |