• 제목/요약/키워드: SAT solver

검색결과 10건 처리시간 0.023초

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.

전달 루틴의 병렬화를 통한 SAT 알고리즘의 GPGPU 가속화 (GPGPU Acceleration of SAT Algorithm with Propagation Routine Parallelization)

  • 강형주
    • 한국정보통신학회논문지
    • /
    • 제20권10호
    • /
    • pp.1919-1926
    • /
    • 2016
  • 대량의 데이터를 병렬적으로 처리할 수 있는 General-Purpose Graphics Processing Unit(GPGPU)가 최근 많은 분야에서 적용되고 있으며, 이는 전자 설계 자동화 분야에서도 예외가 아니다. SAT 알고리즘은 다양한 전자 설계 자동화 문제에 적용되는 대표적인 알고리즘 중 하나이다. GPGPU를 이용해서 SAT 알고리즘을 가속화하기 위해 노력이 이루어져 왔으나, SAT 알고리즘 자체의 특성으로 인해 병렬화에 어려움이 있어왔다. 이 논문에서는 SAT 알고리즘의 내부 과정 중 비교적 병렬화가 용이한 전달 루틴을 병렬화함으로써 GPGPU 가속화를 적용하였다. 전달 루틴이 희소 행렬의 곱셈과 유사한 점에 착안하여 데이터 구조를 구성하고 이에 맞추어서 병렬적인 전달 루틴을 작성하였다. 병렬적으로 동작하는 쓰레드들 사이의 데이터 손실을 방지하기 위해 아토믹(atomic) 연산을 이용하였다. 벤치마크 SAT 문제들에 대해 기존의 GPGPU 기반 SAT solver에 비해 성능이 10배 이상 향상되었음을 확인하였다.

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

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

SAT 솔버를 이용한 ARX 구조 암호의 디퍼렌셜 확률 근사값 계산 (Calculating the Approximate Probability of Differentials for ARX-Based Cipher Using SAT Solver)

  • 이호창;김서진;강형철;홍득조;성재철;홍석희
    • 정보보호학회논문지
    • /
    • 제28권1호
    • /
    • pp.15-24
    • /
    • 2018
  • 본 논문에서는 SAT 솔버를 이용하여 디퍼렌셜 확률의 근사값을 구하는 방법에 대해서 설명한다. SAT 솔버를 이용해서 이미 알려진 차분특성을 디퍼렌셜로 구성하여 확률을 높일 수 있다. 본 논문에서 제안하는 방법으로 SPECK32와 SPECK48의 디퍼렌셜을 구성하였다. SPECK32는$2^{-30.39}$의 확률을 가지는 10-라운드 디퍼렌셜을 찾아냈고, SPECK48은 $2^{-46.8}$의 확률을 가지는 12-라운드 디퍼렌셜을 찾아냈다. 두 특성 모두 가장 길고 높은 확률을 가지는 새로운 디퍼렌셜이다. 본 논문에서 발견한 디퍼렌셜을 이용해서 SPECK32/64의 15 라운드 차분공격, SPECK48/72의 16 라운드 차분공격, SPECK48/96의 17 라운드 차분공격을 하여 이전 공격보다 각각 1 라운드씩 개선하였다.

최대-최대 빈도수 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 알고리즘보다 적은 횟수를 수행함을 알 수 있었다.

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

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

SAT 처리기를 위한 수도쿠 퍼즐의 최적화된 인코딩 (Optimized Encoding of Sudoku Puzzle for SAT Solvers)

  • 권기현
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제34권7호
    • /
    • pp.616-624
    • /
    • 2007
  • SAT을 이용해서 수도쿠 퍼즐을 풀기 위해서는 수도쿠를 SAT 처리기의 표준 입력 언어인 CNF 논리식으로 인코딩 해야 한다. 기존에 제시된 인코딩 알고리즘으로 크기가 큰 수도쿠를 인코딩하면 현재 SAT 처리기의 처리 수준을 넘을 정도로 많은 논리식이 생성된다. 본 논문에서는 크기가 큰 수도쿠를 다루기 위해서 수도쿠의 고정 셀을 이용하여 최적화된 CNF 논리식을 생성하는 방법을 제시한다. 고정 셀에 배정된 숫자는 불변이기 때문에 이를 이용해서 일부 변수의 값을 인코딩 단계에서 미리 결정할 수 있고, 이들 변수의 값을 이용해서 SAT 처리에 영향을 주지 않는 절과 리터럴을 인코딩 단계에서 제거할 수 있다. 다양한 크기의 수도쿠 퍼즐에 적용한 결과 기존 인코딩 알고리즘에 비해서 우수한 성능을 보였다.

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

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

ANSI-C 동시 프로그램 내 경합 상황 탐지 (Detecting Race Conditions In ANSI-C concurrent program)

  • 안소진;심재환;남원홍;최진영
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2011년도 한국컴퓨터종합학술대회논문집 Vol.38 No.1(D)
    • /
    • pp.306-307
    • /
    • 2011
  • 경합 상황, 교착 상태 등과 같은 동시 프로그램의 오류는 기존의 순차 프로그램에 적용되는 테스팅 방법으로는 탐지 및 재현이 힘들다. 하이젠버그라 불리는 이러한 오류는 프로그램의 안정성 및 신뢰성을 떨어뜨리는 원인이 될 수 있으므로 반드시 탐지하고 재현해야 한다. 본 논문은 SAT-solver와 경합 상태 탐지를 위한 Happens-before 알고리즘을 사용하여 ANSI-C 프로그램 내 존재하는 이러한 오류를 탐지하고 재현할 수 있는 방법을 제안한다.