Trabalho de Conclusão de Curso

Approaches to Compiling Probabilistic Logic Circuits into Differentiable Representations for Accelerating Neuro-Symbolic Systems

Matheus Sanches Jurgensen

Bacharelado em Ciência da Computação – Universidade de São Paulo (USP)

Orientador: Prof. Dr. Denis Deratani Mauá

Co-orientador: Jonas Rodrigues Lima Gonçalves

Introdução

A programação neuro-simbólica busca integrar duas abordagens clássicas da inteligência artificial: os sistemas simbólicos — que oferecem representação explícita de conhecimento, interpretabilidade e capacidade de raciocínio lógico — e os modelos baseados em redes neurais artificiais — que se destacam por sua capacidade de generalização e escalabilidade computacional, devido a uma natural compatibilidade com execução paralela em GPU e diferenciação automática. Dentro dessa área, a programação lógico-probabilística fornece uma base formal e expressiva para modelar conhecimento incerto, combinando lógica de primeira ordem com inferência probabilística.

Este trabalho tem como objetivo desenvolver e avaliar estratégias de compilação de circuitos lógicos e probabilísticos, especialmente aqueles na forma sd-DNNF (smooth deterministic decomposable negation normal form), para representações diferenciáveis e compatíveis com frameworks como PyTorch. Ao transformar circuitos simbólicos em arquiteturas neurais otimizadas, pretende-se viabilizar o treinamento e a execução eficiente de modelos neuro-simbólicos, aproveitando os pontos fortes de ambos os paradigmas. Os resultados esperados incluem contribuições metodológicas e implementações que podem facilitar o uso prático desses sistemas híbridos, beneficiando tanto a pesquisa acadêmica quanto aplicações em áreas como sistemas inteligentes, robótica e aprendizado simbólico.

Escopo

O escopo deste trabalho é o aceleramento de sistemas neuro-simbólicos por meio da compilação de circuitos lógicos diferenciáveis, em especial da classe sd-DNNF, para representações computacionais compatíveis com frameworks como PyTorch. A proposta busca permitir a execução eficiente desses circuitos, explorando paralelismo em GPU e diferenciação automática, com o objetivo de desenvolver uma base sólida e expansível para sistemas neuro-simbólicos modernos.

Objetivos

O objetivo principal deste trabalho é investigar e implementar diferentes estratégias de transformação de circuitos lógicos sd-DNNF em modelos baseados em redes neurais para execução em Python. Os objetivos específicos incluem:

Métodos

O desenvolvimento será conduzido por meio das seguintes etapas metodológicas:

  1. Estudo e consolidação teórica sobre programação lógico-probabilística, circuitos sd-DNNF e métodos de compilação para execução diferenciável.
  2. Revisão e seleção de ferramentas existentes para geração de circuitos lógicos.
  3. Implementação das abordagens de transformação para PyTorch (ou outros frameworks).
  4. Desenvolvimento de casos de teste e benchmarks simbólicos.
  5. Análise experimental dos métodos implementados, com métricas quantitativas e qualitativas.
  6. Documentação e redação do trabalho, com reflexões críticas e sugestões para trabalhos futuros.

Planejamento das principais atividades (com cronograma estimado)

Período Atividade
Abril – Maio 2025 Revisão bibliográfica sobre sd-DNNF, programação lógico-probabilística e compilação.
Estudo das ferramentas de compilação e definição formal do escopo técnico.
Junho – Agosto 2025 Implementação das múltiplas abordagens de compilação.
Setembro – Outubro 2025 Desenvolvimento de benchmark e testes experimentais.
Avaliação comparativa e documentação dos resultados.
Novembro – Dezembro 2025 Redação, revisão final e entrega do TCC.

Repositório

O código-fonte deste projeto está disponível no GitHub.

Bibliografia