Autor
Tipo de Bolsa
Sem Bolsa
Orientador
RICARDO JOSÉ PFITSCHER
Centro do Orientador
CAMPUS DE JOINVILLE
Departamento do Orientador
DEPARTAMENTO DE ENGENHARIAS DA MOBILIDADE / DEM/CTJOI
Laboratório
Área do Conhecimento
Ciência da Computação
Período
Setembro de 2022 até Dezembro de 2022
Titulo
Avaliação de técnicas de aprendizagem de máquina para estimativa de complexidade de tempo de execução
Resumo

A complexidade de tempo de execução é uma medida crucial para determinar a eficiência computacional de um dado programa ou algoritmo. A depender da classe de complexidade em que um problema está classificado, ele pode ser considerado intratável, ou seja, um programa que resolve esse problema irá consumir tantos recursos para uma entrada suficientemente grande que será inviável executá-lo. Durante o processo de desenvolvimento de software, desenvolvedores codificam soluções para problemas pontuais, sem, necessariamente, conseguir fazer relação com os problemas clássicos da computação. Então, ao mesmo tempo que é importante aos desenvolvedores conhecer os problemas e sua condição de tratabilidade, também é necessário saber estabelecer a função de tempo de execução para um trecho de código. Apesar de não ser possível escrever um programa capaz de computar o tempo de execução de outro programa, um valor aproximado do tempo de execução pode ser útil para apoiar equipes de desenvolvimento na avaliação da eficiência dos seus códigos produzidos. Recentes esforços de pesquisa têm produzido, através de técnicas de inteligência artificial, estimativas de complexidade com base nas características de código (número de laços aninhados, número de testes condicionais, etc). Contudo, não existem bases de dados que relacionem características de códigos com classes de complexidade consideradas ineficientes (e.g., O(cn) e O(nn)), o que limita os resultados de pesquisa atuais. O presente projeto de pesquisa tem por objetivo desenvolver um modelo capaz de estimar a classe de complexidade de tempo de execução de um determinado trecho de código com base em suas características. As atividades do IC voluntário incluem: i) o entendimento sobre as técnicas de machine learning supervisionadas apropriadas para estimativa da complexidade de tempo; ii) realizar uma análise comparativa em uma base de dados conhecida; iii) implementar um modelo de aprendizado; iv) avaliar resultados; e v) redigir um artigo científico com os resultados.

Palavras-chave
Complexidade, IA, Comparativo

Pró-Reitoria de Pesquisa(PROPESQ) | Central Telefônica - (48) 3721-9332 | Email - piict@contato.ufsc.br