일반적인 경우 계산
2
정확한 계산 방법은 종종 DPLL 스타일의 철저한 검색 또는 일종의 지식 편집을 기반으로합니다. 대략적인 방법은 일반적으로 보장없이 빠른 추정을 제공하는 방법과 정확성을 보장하는 하한 또는 상한을 제공하는 방법으로 분류됩니다. 백도어 검색과 같이 범주에 맞지 않는 다른 방법이나 수식 (또는 제약 조건 그래프)을 유지하기 위해 특정 구조적 속성을 요구하는 방법도 있습니다.
실제 구현이 있습니다. 일부 정확한 모델 카운터는 CDP, Relsat, Cachet, sharpSAT 및 c2d입니다. 정확한 솔버가 사용하는 주요 기술의 종류는 부분 개수, 기초 구속 조건 그래프의 성분 분석, 공식 및 성분 캐싱 및 각 노드에서의 현명한 추론입니다. 지식 편집에 기반한 다른 방법은 입력 CNF 공식을 다른 논리 형식으로 변환합니다. 이 형식에서 모델 수를 쉽게 추론 할 수 있습니다 (새로 생성 된 수식 크기의 다항식 시간). 예를 들어 공식을 이진 결정 다이어그램 (BDD)으로 변환 할 수 있습니다. 그런 다음 BDD를 "1"리프에서 루트로 다시 이동할 수 있습니다. 또는 다른 예에서, c2d는 CNF 공식을 결정 론적 분해 가능한 부정 정규 형식 (d-DNNF)으로 바꾸는 컴파일러를 사용합니다.
ϕϕ
Gogate and Dechter [3]은 SampleMinisat로 알려진 모델 카운팅 기술을 사용합니다. 부울 수식의 역 추적없는 검색 공간에서 샘플링 한 것을 기반으로합니다. 이 기술은 DPLL 기반 SAT 솔버를 사용하여 역 추적없는 검색 공간을 구성하는 중요도 리샘플링 아이디어를 기반으로합니다. 이것은 완전히 또는 근사치까지 수행 될 수 있습니다. 보장 된 추정치에 대한 샘플링도 가능합니다. Gomes et al. [4]는 수정 된 무작위 화 된 전략으로 샘플링을 사용하면 높은 확률 적 정확성 보장으로 전체 모델 수에 대해 가능한 하한을 얻을 수 있음을 보여 주었다.
신념 전파 (BP)를 기반으로하는 작업도 있습니다. Kroc et al. [5] 그리고 그들이 소개 한 BPCount. 같은 논문에서 저자는 모델 수에 상한을 제공하기 위해 MiniCount라는 두 번째 방법을 제공합니다. 특정 통계적 가정 하에서 상한을 계산할 수있는 통계 프레임 워크도 있습니다.
# 2-SAT 및 # 3-SAT 알고리즘
O ( 1.3247엔)O ( 1.6894)엔)O ( 1.6423엔)
문제의 본질과 마찬가지로 실제로 인스턴스를 해결하려는 경우 인스턴스의 크기와 구조에 따라 달라집니다. 더 많이 알수록 올바른 방법을 선택할 수 있습니다.
[1] 빌헬름 달리 요프, 피터 존슨, 매그너스 월 스트롬. 2-SAT 및 3-SAT에서 만족스러운 할당 계산. 제 8 회 연례 국제 컴퓨팅 및 조합 회의 (COCOON-2002), 535-543, 2002.
[2] W. Wei 및 B. Selman. 모델 카운팅에 대한 새로운 접근. SAT05 절차 : 제 8 차 만족도 테스트 이론 및 응용에 관한 국제 회의, 컴퓨터 과학 강의 노트 3569, 324-339, 2005.
[3] R. Gogate 및 R. Dechter. 역 추적없는 검색 공간을 샘플링하여 대략적인 계산. AAAI-07 발간물 : 인공 지능에 관한 22 차 전국 회의, 198–203, 밴쿠버, 2007.
[4] CP Gomes, J. Hoffmann, A. Sabharwal 및 B. Selman. 샘플링에서 모델 카운팅까지. IJCAI-07의 절차 : 인공 지능에 관한 제 20 차 국제 공동 회의, 2293–2299, 2007.
[5] L. 크록, A. Sabharwal 및 B. 셀만. 모델 전파를위한 신념 전파, 역 추적 검색 및 통계 활용. CPAIOR-08 : 제약 프로그래밍에서 AI와 OR 기술의 통합에 관한 5 차 국제 컨퍼런스, 컴퓨터 과학 강의 노트 5015, 127–141, 2008.
[6] K. Kutzkov. # 3-SAT 문제에 대한 새로운 상한. 정보 처리 서한 105 (1), 1-5, 2007.