Estudos de resolvedores SAT I: Uma imersão na satisfação booleana

2025-01-08

Esta postagem de blog explora o fascinante mundo dos resolvedores SAT, traçando sua evolução de abordagens simples de força bruta a algoritmos sofisticados como Davis-Putnam e Aprendizado de Cláusulas Orientado a Conflitos (CDCL). Ele compara diferentes técnicas, destacando avanços recentes, como fechamento de congruência, varredura de equivalência de cláusulas e adição de variáveis ​​limitadas que melhoraram drasticamente o desempenho. O autor fornece exemplos de código Python que ilustram resolvedores de força bruta, baseados em Davis-Putnam e em loop de cláusulas fornecidas. A postagem também aborda técnicas de avaliação parcial e direções futuras de pesquisa, tornando-se uma leitura convincente para quem se interessa pelas intrincadas da satisfação booleana.

Leia mais

Execução Simbólica por Sobrecarga de __bool__

2024-12-24

Este artigo apresenta uma técnica inteligente para execução simbólica de código Python, sobrecarregando a função __bool__ na biblioteca Python Z3. O autor utiliza as capacidades do Z3 para traduzir instruções condicionais Python em expressões Z3, permitindo a exploração de caminhos e análise de resultados. Esta abordagem ignora a travessia complexa de AST e permite o uso direto em código Python, simplificando a execução simbólica.

Leia mais