Title: | Geração automática de programas concorrentes dirigida por agentes inteligentes baseados em aprendizado por reforço |
Author: | Pereira, Luiz Maurício do Valle |
Abstract: |
Este trabalho aborda o desenvolvimento de agentes inteligentes baseados no paradigma de Aprendizado por Reforço (Reinforcement Learning) para a geração automática de programas concorrentes, visando uma aplicação específica: a verificação funcional do projeto de um muticore chip. O objetivo é verificar se a interação entre os núcleos (cores) está de acordo com o comportamento esperado. Por isso, os programas gerados deverão ser capazes de cobrir todos os comportamentos especificados em um plano de verificação. Durante a execução de um programa em uma simulação do multicore chip, um verificador dinâmico (runtime checker) afere se cada comportamento observado é compatível com um dos comportamentos esperados e, em caso contrário, sinaliza imediatamente um erro de projeto. Por isso, cada agente deve ser desenvolvido para dirigir a geração de programas concorrentes de forma a maximizar a cobertura de comportamentos esperados e a minimizar o tempo para se encontrar eventuais erros de projeto. Cada agente inteligente foi construído através da modificação de um dos módulos do gerador automático de programas. Diferentes agentes foram desenvolvidos variando-se os hiperparâmetros da rede neural e a longevidade histórica da interação agente-ambiente usada para aproximar a noção de estado. O desempenho relativo dos agentes desenvolvidos foi avaliado através da comparação de curvas de cobertura como função do tempo e constelações de pontos (cobertura, tempo) indicando a descoberta de erros. Além disso, o desempenho dos geradores construídos com esses agentes foi comparado com o desempenho de um gerador baseado em Programação Genética, o qual foi desenvolvido por terceiros. This work addresses the development of intelligent agents based on Reinforcement Learning for the automatic generation of concurrent programs, targeting a specific application: the functional verification of the design of a multicore chip. The goal is to verify if the interaction between cores complies with the expected behavior. Therefore, the generated programs must be capable of covering all the behaviors specified in a verification plan. During the execution of a program in a simulation of the multicore chip, a runtime checker verifies whether every observed behavior is compatible with one of the expected behaviors, or otherwise immediatly indicates a design error. That is why each agent must be developed to direct test generation so as to maximize the coverage of the expected behaviors and minimize the time to discover possible design errors. Each inteligent agent was built by modifying one of the modules of the automatic program generator. Different agents were developed by variying the hiperparameters of the neural network and the depth of the agent-environment history used to approximate the notion of state. Their performance was compared with basis on curves of coverage as function of time and constellations of points (coverage, time) indicating error discovery. They were also compared with a genetic programming based generator, developed by a third party. |
Description: | TCC (graduação) - Universidade Federal de Santa Catarina, Centro Tecnológico, Ciências da Computação. |
URI: | https://repositorio.ufsc.br/handle/123456789/266504 |
Date: | 2025-06-27 |
Files | Size | Format | View |
---|---|---|---|
TCC_Luiz_Mauricio-final-pdfa.pdf | 731.8Kb |
View/ |