• Title/Summary/Keyword: SAT problem

Search Result 39, Processing Time 0.03 seconds

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

  • Kwon, Gi-Hwon
    • Journal of KIISE:Software and Applications
    • /
    • v.34 no.7
    • /
    • pp.616-624
    • /
    • 2007
  • Sudoku can be regarded as a SAT problem. Various encodings are known for encoding Sudoku as a Conjunctive Normal Form (CNF) formula, which is the standard input for most SAT solvers. Using these encodings for large Sudoku, however, generates too many clauses, which impede the performance of state-of-the-art SAT solvers. This paper presents an optimized CNF encodings of Sudoku to deal with large instances of the puzzle. We use fixed cells in Sudoku to remove redundant clauses during the encoding phase. This results in reducing the number of clauses and a significant speedup in the SAT solving time.

A 3-SAT Polynomial Time Algorithm Based on Minimum Frequency Literal-First Selection Method (최소 빈도수 문자 우선 선택 방법의 3-SAT 다항시간 알고리즘)

  • Sang-Un, Lee
    • The Journal of the Institute of Internet, Broadcasting and Communication
    • /
    • v.23 no.1
    • /
    • pp.157-162
    • /
    • 2023
  • To NP-complete 3-SAT problem, this paper proposes a O(nm) polynomial time algorithm, where n is the number of literals and m is the total frequency of all literals in equation f. The algorithm firstly decides a truth value of a literal in sequence of previously-set priority. The priority order is as follows: a literal whose occurrence in a clause is 1(k=1), a literal which is k≥2 and whose truth value is either 0 or 1, and a literal with the minimum frequency. Then, literals whose truth value is determined are then deleted from clause T and the remaining clauses. This process is repeated l times, the number of literals. As a result, the proposed algorithm has been successful in accurately determining the satisfiability of a given equation f and in deciding the truth value of all the literals. This paper, therefore, provides not only a linear-time algorithm as a viable solution to the SAT problem, but also a basis for solving the P versus NP problem.

Automated Test Data Generation for Testing Programs with Flag Variables Based on SAT (SAT를 기반으로 하는 플래그 변수가 있는 프로그램 테스팅을 위한 테스트 데이터 자동 생성)

  • Chung, In-Sang
    • The KIPS Transactions:PartD
    • /
    • v.16D no.3
    • /
    • pp.371-380
    • /
    • 2009
  • Recently, lots of research on automated test data generation has been actively done. However, techniques for automated test data generation presented so far have been proved ineffective for programs with flag variables. It can present problems when considering embedded systems such as engine controllers that make extensive use of flag variables to record state information concerning devices. This paper introduces a technique for generating test data effectively for programs with flag variables. The presented technique transforms the test data generation problem into a SAT(SATisfiability) problem and makes advantage of SAT solvers for automated test data generation(ATDG). For the ends, we transform a program under test into Alloy which is the first-order relational logic and then produce test data via Alloy analyzer.

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

  • Sang-Un Lee
    • The Journal of the Institute of Internet, Broadcasting and Communication
    • /
    • v.23 no.6
    • /
    • pp.125-132
    • /
    • 2023
  • To NP-complete 3-SAT problem, this paper proposes a O(nm) polynomial time algorithm, where n is the number of literals and m is the total frequency of all literals in equation f. Conventionally well-known DPLLs should perform O(2𝑙) in the worst case by performing backtracking if they fail to find a solution in a brute-force search of a branch-and-bound for the number of literals 𝑙. DPLL forms the core of the SAT Solver by substituting true(T) or false(F) for a literal so that a clause containing the least frequency literal is true(T) and removing a clause containing that literal. Contrary to DPLL, the proposed algorithm selects a literal max𝑙 with the maximum frequency and sets $_{\max}({\mid}l{\mid},{\mid}{\bar{l}}{\mid})=1$. It then deletes 𝑙∈ci clause in addition to ${\bar{l}}$ from ${\bar{l}}{\in}c_i$ clause. Its test results on various k-SAT problems not only show that it performs less than existing DPLL algorithm, but prove its simplicity in satisfiability verification.

A Goal-oriented Test Data Generation for Programs with Pointers based on SAT (SAT에 기반한 포인터가 있는 프로그램을 위한 목적 지향 테스트 데이터 생성)

  • Chung, In-Sang
    • Journal of Internet Computing and Services
    • /
    • v.9 no.2
    • /
    • pp.89-105
    • /
    • 2008
  • So far, most of research on automated test data generation(ATDG) deals with programs without pointers. Recently, few works hove been done on ATDG in the presence of pointers, but they ore path-oriented techniques which require the specification of on entire program path to be tested or a program to be executed. This paper presents a new technique for generating test data even without specifying a program path completely. The presented technique is a static technique which transforms the test data generation problem into a SAT(SATisfiability) problem and makes advantage of SAT solvers for ATDG. For the ends, we transform a program under test into Alloy which is the first-order relational logic and then produce test data via Alloy analyzer.

  • PDF

Efficient Application to SAT Using DNF (DNF를 이용한 SAT의 효율적 적용)

  • 남명진;최진영
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2003.04a
    • /
    • pp.881-883
    • /
    • 2003
  • 하드웨어 검증과 모델 체킹 등의 분야에서, SAT(satisfiability problem)나 항진 명제 검사(tautology checking)는 매우 중요한 문제이다. 그러나 이들은 모두 NP-complete 문제이므로 그 복잡도가 매우 크다. 이를 해결하기 위해 여러 가지 연구가 이루어져 왔으며, 여러 효율적인 알고리즘이 존재한다. 이러한 알고리즘은 대부분 일반 표현식을 CNF(conjunctive normal form)로 바꾸어 입력 형식으로 사용한다. 이 논문에서는 일반 표현식을 입력으로 받아 DNF로 변환한 뒤 DNF의 특성을 이용하여 SAT를 검사하는 효율적인 방법을 제시한다.

  • PDF

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

  • Kang, Hyeong-Ju
    • Journal of the Korea Institute of Information and Communication Engineering
    • /
    • v.20 no.10
    • /
    • pp.1919-1926
    • /
    • 2016
  • Because of the enormous processing ability, General-Purpose Graphics Processing Unit(GPGPU) has been applied to many fields including electronics design automation. The SAT algorithm is one of the core algorithm in many electronics design automation tools. There has been some efforts to apply GPGPU to the SAT algorithm, but it is difficult to parallelize the SAT algorithm because of its characteristics. In this paper, I applied GPGPU to the SAT algorithm by parallelizing the propagation routine that is relatively suitable to parallel processing. On the basis of the similarity of the propagation routine to the sparse matrix multiplication, the data structure for the SAT problem is constituted, and the parallel propagation routine is described. To prevent data loss between paralllel threads, atomic operations are exploited. The experimental results for some benchmark SAT problems show that the proposed algorithm is superior to the previous GPGPU-based SAT solver.

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

  • Chung, Insang
    • International Journal of Contents
    • /
    • v.10 no.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.

Performance Analysis on SAT, PB and SMT for Counting Problems (카운팅 문제에 대한 SAT, PB, SMT의 성능 분석)

  • Park, Ho-Jin;Park, Sa-Choun;Kwon, Gi-Hwon
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2008.05a
    • /
    • pp.371-374
    • /
    • 2008
  • n개의 이진 변수 집합 중에 k개를 선택하는 카운팅 문제(Counting Problem)들은 여러 방법으로 풀이가 가능하다. 본 논문에서는 카운팅 문제를 풀기 위해 SAT, PB, SMT를 소개하고, 칸 칠하기(Fill-a-Pix) 퍼즐을 예로 들어 카운팅 문제의 인코딩 방법을 제시하고 처리 결과를 비교해 보았다. SAT이 상대적으로 인코딩은 가장 복잡했으나, 처리 시 가장 우수한 성능을 보였다. 따라서 본 논문은 카운팅 문제를 다룰 때에는 SAT이 가장 적합하다는 것을 제안한다.

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

  • 남명진;최진영;곽희환
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2003.10a
    • /
    • 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