위키득계정 ↗
기술

Sat4j

Sat4j기술
구현 기반
Java와 JVM
분류
불리언 추론 라이브러리
문제 유형
SAT MaxSAT 의사 불리언 제약
추가 기능
최소 불만족 부분집합 분석
Sat4j는 Java에서 불리언 만족 가능성과 최적화 문제를 푸는 라이브러리다. SAT뿐 아니라 MaxSAT, 의사 불리언 제약, 최소 불만족 부분집합 관련 기능을 제공한다.

참과 거짓으로 제약 표현

문제의 선택과 조건을 불리언 변수로 바꾸면 모든 조건을 만족하는 조합이 있는지 물을 수 있다. Sat4j는 이런 질의를 Java 프로그램 안에서 다루는 기반이다. 실제 업무 개념을 논리식으로 옮기는 과정은 라이브러리를 사용하는 쪽에서 준비한다.

판정과 최적화의 구분

SAT는 조건을 모두 만족하는지 묻는 반면 MaxSAT는 만족시키는 조건을 최대화하는 문제를 다룬다. 의사 불리언 제약에서는 불리언 값에 대한 가중 합 등의 관계를 표현한다. 문제 유형에 맞는 구성 요소를 선택해야 한다.

불가능한 조건 분석

조건들이 함께 성립할 수 없을 때 그 원인을 이루는 부분집합을 찾는 기능도 있다. 이는 입력 모델의 모순을 이해하는 데 도움이 된다. 해결기가 산출한 결과와 별개로 제약이 원래 요구를 정확히 나타내는지는 다시 확인한다.

관련 문서

MiniSat / CaDiCaL / Kissat / Alloy 모델링