SAT 솔버 연구 I: 부울 만족 가능성 문제에 대한 심층 탐구

2025-01-08

이 블로그 게시글은 SAT 솔버의 매혹적인 세계를 탐구하며, 단순한 무작위 시도 방식에서 Davis-Putnam 방식이나 충돌 기반 절 학습(CDCL)과 같은 정교한 알고리즘으로의 진화 과정을 추적합니다. 다양한 기법을 비교하고, 성능을 획기적으로 향상시킨 최근의 발전, 예를 들어 합동 폐쇄, 절 동등성 스위핑, 제한된 변수 추가 등을 강조합니다. 저자는 무작위 시도, Davis-Putnam 기반, 주어진 절 루프를 사용하는 솔버를 보여주는 Python 코드 예시를 제공합니다. 이 게시글에서는 부분 평가 기법과 미래 연구 방향도 다루어 부울 만족 가능성 문제의 복잡성에 관심 있는 모든 사람들에게 매력적인 읽을거리가 됩니다.

더 보기

__bool__ 오버로딩을 통한 심볼릭 실행

2024-12-24

이 글에서는 Z3 Python 라이브러리에서 __bool__ 함수를 오버로딩하여 Python 코드의 심볼릭 실행을 수행하는 영리한 기법을 소개합니다. 저자는 Z3의 기능을 활용하여 Python 조건문을 Z3 표현식으로 변환하여 경로 탐색 및 결과 분석을 가능하게 합니다. 이러한 접근 방식은 복잡한 AST 순회를 피하고 Python 코드 내에서 직접 사용할 수 있으므로 심볼릭 실행을 간소화합니다.

더 보기