• 제목/요약/키워드: Boolean Satisfiability Solver

검색결과 6건 처리시간 0.021초

만족가능성 처리기를 이용한 이진 변수 서브시퀀스 추출 (Extracting Subsequence of Boolean Variables using SAT-solver)

  • 박사천;권기현
    • 정보처리학회논문지D
    • /
    • 제15D권6호
    • /
    • pp.777-784
    • /
    • 2008
  • 최근 정형 검증 분야에서 상태 폭발 문제를 극복하기 위해 만족가능성(Satisfiability) 처리기를 사용하는 방법이 많이 연구되고 있다. 만족가능성 처리기를 사용하려면 대상을 CNF 식으로 변환해야 하는데, 이진 기수 제약 조건은 시스템을 CNF 식으로 변환하기 위해 많이 사용되는 기법이다. 그러나 이진 기수 제약 조건은 이진 변수들의 집합을 다루기 때문에 이진 변수들의 순서 정보는 변환할 수 없었다. 본 논문에서는 이진 변수의 시퀀스에서 길이가 k인 서브시퀀스 추출 문제에 대한 CNF 변환 방법을 제안한다. 또한 실험을 통해 제안된 방법이 순서정보를 고려치 않고 적용한 변환 방법보다 훨씬 더 좋은 결과를 얻을 수 있었다.

SAT Preprocessor의 구현 및 실험 (Implementation and Experiments of SAT preprocessor)

  • 남명진;최진영;곽희환
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2003년도 가을 학술발표논문집 Vol.30 No.2 (1)
    • /
    • pp.517-519
    • /
    • 2003
  • 하드웨어 검증과 모델 체킹 등의 분야에서, SAT(satisfiability problem)나 항진 명제 검사(tautology checking)는 매우 중요한 문제이다. 그러나 이들은 모두 NP-complete 문제이므로 그 복잡도가 매우 크다. 이를 해결하기 위한 여러 연구가 진행되고 있고, 그 결과 성능이 좋은 solver들이 개발되었다. 하지만 문제가 커질수록 solver의 처리 시간이 급격하게 증가한다. 이 논문에서는 solver가 복잡한 문제를 더 효율적으로 풀기 위해 논문“Local search for Boolean relations on the basis of unit propagation”[5]에서 제안된 preprocessor(전처리기), P_EQ의 개념을 설명하고, 실험을 통한 결과를 제시한다.

  • PDF

Modeling Pairwise Test Generation from Cause-Effect Graphs as a Boolean Satisfiability Problem

  • Chung, Insang
    • International Journal of Contents
    • /
    • 제10권3호
    • /
    • pp.41-46
    • /
    • 2014
  • A cause-effect graph considers only the desired external behavior of a system by identifying input-output parameter relationships in the specification. When testing a software system with cause-effect graphs, it is important to derive a moderate number of tests while avoiding loss in fault detection ability. Pairwise testing is known to be effective in determining errors while considering only a small portion of the input space. In this paper, we present a new testing technique that generates pairwise tests from a cause-effect graph. We use a Boolean Satisbiability (SAT) solver to generate pairwise tests from a cause-effect graph. The Alloy language is used for encoding the cause-effect graphs and its SAT solver is applied to generate the pairwise tests. Using a SAT solver allows us to effectively manage constraints over the input parameters and facilitates the generation of pairwise tests, even in the situations where other techniques fail to satisfy full pairwise coverage.

이진 기수 조건에서 인접성 표현을 위한 최적화된 CNF 변환 (Optimal CNF Encoding for Representing Adjacency in Boolean Cardinality Constraints)

  • 박사천;권기현
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제35권11호
    • /
    • pp.661-670
    • /
    • 2008
  • 만족가능성 처리기는 모델 검증 및 임베디드 프로그램 검증과 같이 소프트웨어 공학의 여러 분야에서 활용되고 있다. 만족가능성 처리기를 활용하기 위해서는 주어진 문제를 처리기의 입력인 CNF 형식으로 변환해야 한다. 그러나 이 형식은 소스코드나 소프트웨어 모델보다 표현력이 낮기 때문에 최적화된 변환이 요구된다. 본 논문에서는 "n개에서 인접된 $k{\leq}n$개 선택" 문제를 CNF형식으로 변환하는 최적화된 기법을 제시한다. 제안된 방법을 다양한 일본 퍼즐에 적용한 결과 우수한 성능이 입증되었다. 우리가 알고 있는 한, 인접성에 대한 최적화된 CNF 변환 연구는 거의 없다.

SAT를 이용한 정보흐름의 안전성 분석 (Security Analysis of Information Flow using SAT)

  • 김제민;고훈준
    • 디지털융복합연구
    • /
    • 제14권6호
    • /
    • pp.253-261
    • /
    • 2016
  • PC 와 모바일 기기에 있는 다양한 프로그램을 이용하여 인터넷을 이용하는 사람들이 늘어날수록 프로그램에서 개인정보 등이 유출될 가능성은 매우 높아지고 있다. 따라서 인터넷을 사용하는 프로그램에서 정보흐름의 안전성 분석을 한 후에 개인정보의 유출이 없는 안전한 프로그램을 사용해야 한다. 정보흐름의 안전성 분석은 프로그램 내에서 정보의 흐름이 안전한지 분석하는 방법으로 정보흐름이 안전하면 개인정보 유출이 없고 안전하지 않으면 개인정보 유출이 발생할 수 있다. 본 논문에서는 SAT 해결기를 활용하여 정보흐름 분석을 수행하는 방법을 제시한다. 이 방법은 보안 수준이 설정된 변수를 포함하는 프로그램을 제어와 정보흐름을 나타내는 명제 논리식으로 변환하고, SAT 해결기를 이용해 명제 논리식으로부터 만족가능성 여부를 판단한다. 판단된 결과를 통해 프로그램에서 정보흐름이 안전한지 알 수 있으며, 안전하지 않은 경우 반례를 생성하여 어느 부분에서 안전하지 않은 지 알 수 있다.

최대-최대 빈도수 k-SAT 알고리즘 (k-SAT Problem Algorithm Based on Maximum-Maximum Frequency)

  • 이상운
    • 한국인터넷방송통신학회논문지
    • /
    • 제23권6호
    • /
    • pp.125-132
    • /
    • 2023
  • 본 논문은 NP-완전으로 알려진 k-SAT 문제의 절의 수 m에 대해 O(km)의 다항시간 알고리즘을 제안하였다. 기존에 널리 알려진 DPLL은 문자 수 𝑙에 대해 분기한정법의 전수탐색으로 해를 찾지 못하면 역추적을 수행하는 방식으로 최악의 경우 O(2𝑙)을 수행해야 한다. DPLL은 최소 빈도수 문자가 포함된 절을 참(T)으로 하도록 문자에 참(T) 또는 거짓(F)을 대입하여 해당 문자가 포함된 절을 제거하는 방식으로 SAT Solver의 근간을 이루고 있다. 제안된 알고리즘은 DPLL과는 반대로 부울 수식 f에 존재하는 최대 빈도수 문자 max𝑙을 선택하고, $_{\max}({\mid}l{\mid},{\mid}{\bar{l}}{\mid})=1$로 설정하고, 𝑙∈ci 절은 삭제하며, ${\bar{l}}{\in}c_i$절에서 ${\bar{l}}$를 삭제하는 방법을 적용하였다. 제안된 알고리즘을 다양한 k-SAT 문제들에 적용한 결과 기존의 DPLL 알고리즘보다 적은 횟수를 수행함을 알 수 있었다.