SAT 문제의 모든 솔루션 열거


11

내가 아는 모든 #SAT 솔버 (예 : RelSat, C2D)는 만족할만한 인스턴스 수만 반환합니다. 그러나 각 인스턴스를 알고 싶습니다.

이러한 #SAT 솔버가 있거나 사용 가능한 #SAT 솔버를 수정하여 어떻게해야합니까?

감사합니다.


7
이것을 "모든 솔루션 SAT 솔버"라고도하지만 선반에서 사용할 수없는 것 같습니다. 내가 찾을 수있는 참조는 MiniSAT 및 기타 솔버에 대한 수정에 대해 이야기 할 수 있습니다. 보통 솔루션을 찾을 때 제외시키기 위해 차단 절을 추가합니다. 반면, 대부분의 구속 조건 솔버는 모든 솔루션을 표준으로 생성하도록 지원합니다.
András Salamon

한 가지 접근 방식은 많은 문헌이있는 CNF → DNF 변환입니다.
vzn

답변:


13

ALL-SAT 또는 모든 솔루션 SAT 솔버를 찾고 있습니다. 이것은 #SAT와 다른 문제입니다. 계산하기 위해 모든 솔루션을 열거 할 필요는 없습니다.

사람들이 기존 SAT 솔버 위에 이러한 알고리즘을 추가하지만 이러한 확장을 출시하는 경우는 거의 없기 때문에 문제를 해결하는 도구를 모르겠습니다. ALL-SAT를 구현하기 위해 CDCL 솔버를 수정하는 데 도움이되는 두 가지 논문은 다음과 같습니다.

메모리 효율적인 모든 솔루션 SAT 솔버 및 도달 가능성에 대한 적용 , O. Grumberg, A. Schuster, A. Yadgar, FMCAD 2004

다음은 arXiv에 게시 된 최근 기사입니다.

모든 모델을 열거하기위한 최신 SAT 솔버 확장 , Said Jabbour, Lakhdar Sais, Yakoub Salhi, 2013

구현을 위해이 저자들에게 연락을 시도 할 수 있습니다.


두 번째 논문의 경우 첫 번째 버전 v1을 클릭하기 만하면됩니다.
Tayfun Pay

이 논문은 관련이있는 것으로 보입니다 : homes.cs.washington.edu/~sudeepa/UAI2013-ModelCounting.pdf
Kaveh

1
@Kaveh, OP는 ALLSAT 솔버 또는 #SAT 솔버를 ALLSAT 솔버로 전환하는 방법을 요구한다고 생각합니다. #SAT의 하한에 대한 논문입니다. OP에 도움이되는지 잘 모르겠습니다.
Vijay D

2

VLSI 회의에서 All-SAT에 대한 최신 (2014) 논문을 찾았으므로 실제 측면을 향한 것이 확실합니다 (일반적으로 cstheory.SE는 아니지만 OP의 질문과 일치하는 것으로 보입니다).

  • Yinlei Yu, Pramod Subramanyan, Nestan Tsiskaridze, Sharad Malik, VLSI Design 2014의 "최소 차단 절을 사용한 모든 SAT". doi : 10.1109 / VLSID.2014.22 .

IEEE 가입이없는 사람들을 위해 Subramanyan의 Princeton 웹 페이지 에 무료 사본이 있습니다. (그는 파일 공유 서비스를 사용하여 논문의 사본을 저장 / 배포하며이 URL이 얼마나 안정적인지 잘 모르겠으므로이 로터리 링크입니다.)

이 논문의 요지는 다음과 같다.

우리의 기여, 비 연속 -Dec 알고리즘은 솔버에 묵시적 변수를 포함하지 않는 매우 짧은 블로킹 절을 생성합니다. 일반적으로 만족스러운 최소항에있는 대부분의 변수가 암시됩니다. 짧은 블로킹 절은 평가에서 입증 된 것처럼 솔버 성능에 매우 유용합니다.

그들의 구현은 MiniSat을 기반으로합니다. 확장을위한 소스 코드는 공개적으로 제공되지 않는 것 같습니다. 아아 이것은 All-SAT 분야의 습관 인 것처럼 보이므로 실험 결과가 포함 된이 분야의 논문은 약간의 밀짚 맨보다 간단한 알고리즘을 설정하여 직접 비교하기가 거의 불가능합니다 (실험 측면에서) All-SAT에 대해 게시 된 다른 알고리즘과 함께 제공됩니다. Jabbour 등의 논문. Vijay D가 언급 한 것도 이런 종류입니다.

다른 답변에서 언급되지 않았지만 (András Salamon의 의견에서만), [대부분 인기있는] 차단 절 techinique가 다음과 같이 소개되었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.