Skip to main content
QUICK REVIEW

[논문 리뷰] Implicant based parallel all solution solver for Boolean satisfiability

Virendra Sule|arXiv (Cornell University)|2016. 11. 29.
Formal Methods in Verification참고 문헌 8인용 수 3
한 줄 요약

이 논문은 밀도가 낮은 부울 함수를 인수로 분해하여 임플리컨트를 기반으로 하는 병렬 알고리즘을 제안하며, 대수적 정규형(ANF)으로 표현된 부울 공식의 모든 만족할 수 있는 할당을 계산한다. 솔루션은 상호직교 임플리컨트를 통해 압축적으로 표현하고, 독립된 스레드 간에 계산을 분산시킴으로써 충분한 병렬 프로세서가 존재할 경우 O(n)의 시간 복잡도를 달성하며, 이는 크고 흩어진 시스템에 대한 확장 가능한 솔루션 열거를 가능하게 한다.

ABSTRACT

This paper develops a parallel computational solver for computing all satifying assignments of a Boolean system of equations defined by Boolean functions of several variables. While there are we known solvers for satisfiability of Boolean formulas in CNF form, these are designed primarily for deciding satisfiability of the formula and do not address the problem of finding all satisfying solutions. Moreover development of parallel solvers for satisfiability problems is still an unfinished problem of Computer Science. The solver proposed in this paper is aimed at representing all solutions of Boolean formulas even without the CNF form with a parallel algorithm. Algorithm proposed is applied to Boolean functions in algebraic normal form (ANF). The algorithm is based on the idea to represent the satisfying assignments in terms of a complete set of implicants of the Boolean functions appearing as factors of a Boolean formula. The algorithm is effective mainly in the case when the factors of the formula are sparse (i.e. have a small fraction of the total number of variables). This allows small computation of a complete set of implicants of individual factors one at a time and reduce the formula at each step. An algorithm is also proposed for finding a complete set of orthogonal implicants of functions in ANF. An advantages of this algorithm is that all solutions can be represented compactly in terms of implicants. Finally due to small and distributed computation at every step as well as computation in terms of independent threads, the solver proposed in this paper is expected to be useful for developing heuristics for a well scalable parallel solver for large size problems of Boolean satisfiability over large number of processors.

연구 동기 및 목표

  • 모든 만족할 수 있는 할당을 계산하기 위한 확장 가능한 병렬 솔버를 개발하기 위해.
  • 기존 SAT 솔버가 만족 문제에 집중하는 데 반해 전체 솔루션 열거에 대한 격차를 메우기 위해.
  • 임플리컨트와 상호직교 임플리컨트를 사용하여 지수적으로 큰 솔루션 집합을 압축적으로 표현하기 위해.
  • 독립된 스레드 생성을 통해 자연스럽게 로드 밸런싱과 프로세서 재사용을 지원하는 병렬 알고리즘을 설계하기 위해.
  • 암호 분석, 생물학적 네트워크, 논리 최적화 분야의 대규모 문제에 대해 부울 함수의 흩어진 성질을 활용하여 확장성을 향상시키기 위해.

제안 방법

  • 부울 공식 F = ∏fi에서 각 인수 fi(ANF 형태의 흩어진 부울 함수)에 대해 완전한 임플리컨트 집합을 계산한다.
  • 피벗 인수를 사용해 초기 임플리컨트를 생성한 후, 각 임플리컨트를 나머지 인수에 대입하여 공식을 순차적으로 축소한다.
  • 각 임플리컨트에 대해 나머지 함수의 몫을 계산하며, 0으로 평가되는 경우(모순) 또는 부분 해를 도출하는 경우를 버린다.
  • 모든 솔루션의 비중복적이고 압축된 표현을 확보하기 위해 상호직교 임플리컨트를 활용한다.
  • 각 임플리컨트 별로 독립된 스레드로 계산을 구조화하여 동적 프로세서 재사용이 가능한 병렬 실행을 가능하게 한다.
  • 알고리즘은 재귀적이고 본질적으로 병렬적이며, 충분한 프로세서가 있고 함수가 흩어져 있을 경우 시간 복잡도가 O(n)으로 제한된다.

실험 결과

연구 질문

  • RQ1ANF 형식의 부울 공식의 모든 해를 위한 병렬 솔버를 설계하고 압축된 솔루션 표현을 달성할 수 있는가?
  • RQ2임플리컨트를 어떻게 활용하여 독립된 스레드 간에 계산을 분해하고 분산시켜 확장 가능한 솔루션 열거를 달성할 수 있는가?
  • RQ3이상적인 병렬 실행 조건 하에서 이러한 솔버의 이론적 시간 복잡도는 무엇인가?
  • RQ4부울 함수의 흩어진 성질이 솔버의 확장성과 성능에 어떤 영향을 미치는가?
  • RQ5상호직교 임플리컨트의 사용이 모든 만족할 수 있는 할당의 더 압축되고 효율적인 표현으로 이어질 수 있는가?

주요 결과

  • 충분한 병렬 프로세서가 존재할 경우, 부울 함수가 흩어져 있고 변수 수가 유한한 조건 하에 제안된 솔버는 O(n) 시간 복잡도를 달성한다. 여기서 n은 변수의 수이다.
  • 스레드 세그먼트 수는 처음에는 지수적으로 증가하지만, 모순나 부분 해가 감지될수록 급격히 줄어들어 전체 계산 부담이 감소한다.
  • 상호직교 임플리컨트를 통해 모든 솔루션의 압축된 표현을 보장하여 솔루션 열거 시 지수적 팽창을 방지한다.
  • 스피드업은 독립된 스레드 수에 비례하며, 최대 이론적 스피드업 S = N / N_seq로 표현되며, 여기서 N은 총 스레드 세그먼트 수이고 N_seq는 가장 긴 순차적 스레드의 수이다.
  • 암할 법 분석에 따르면, P = N / N_seq일 때 임계 스피드업 S_crit = P² / (P² - (P-1)²) 가 달성 가능하며, 이상적인 조건 하에서 강력한 확장성을 보인다.
  • 특히 암호 분석과 유전자 조절 네트워크와 같이 개별 함수의 복잡도가 제한된 문제에 대해 이 방법은 매우 효과적이다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.