거의 모든 SAT 솔버가 DNF 대신 CNF를 사용하는 이유를 잘 모르겠습니다. DNF를 사용하면 SAT를 해결하는 것이 더 쉬운 것 같습니다. 결국, 당신은 단지 일련의 함축을 스캔하고 그들 중 하나가 변수와 그 부정을 모두 포함하지 않는지 확인해야합니다. CNF의 경우 이와 같은 간단한 절차는 없습니다.
거의 모든 SAT 솔버가 DNF 대신 CNF를 사용하는 이유를 잘 모르겠습니다. DNF를 사용하면 SAT를 해결하는 것이 더 쉬운 것 같습니다. 결국, 당신은 단지 일련의 함축을 스캔하고 그들 중 하나가 변수와 그 부정을 모두 포함하지 않는지 확인해야합니다. CNF의 경우 이와 같은 간단한 절차는 없습니다.
답변:
인해 카프에 3SAT에 SAT에서 교과서 감소는 임의의 부울 식 변환 에 "등가"CNF 부울 식으로 Φ ' 다항식 크기 되도록, Φ는 경우에만, 만족할이며 Φ는 ' 만족할 수있다. 엄밀히 말하면,이 두 공식은 Φ ' 에 추가 변수가 있지만 Φ ' 의 값은 실제로 새로운 변수에 의존하지 않기 때문에 동일 하지 않습니다.
임의의 부울 공식에서 DNF 공식으로의 유사한 감소는 알려져 있지 않습니다. 알려진 모든 변환은 수식의 크기를 기하 급수적으로 증가시킵니다. 또한, P = NP가 아니라면, 그러한 감소는 불가능하다!
대부분의 중요한 것들이 언급되었지만 몇 가지 점을 강조하고 싶습니다.
따라서 SAT 솔버는 만족도를 목표로하고 선형 시간의 만족도를 유지하면서 모든 수식을 CNF로 변환 할 수 있기 때문에 CNF를 사용합니다.
7 일 2013년 9월 : 페이지의 추가 답변을 추가, 체크 바닥
기본적으로, DNF 수식 절 논리합 각 절 C 내가 = L에게 I를 , 1 ∧ . . . ∧ L I , K는 리터럴의 연동 해있다. 리터럴 l 과 부정 ¬ l 이 모두 포함 된 경우에만 충돌 하는 조항 c i를 호출 해 봅시다 . 충돌하지 않는 각 절이 단지 2 n을 인코딩한다는 것을 쉽게 알 수 있습니다 -공식의 솔루션. 따라서 전체 DNF는 솔루션의 열거입니다. 수식은 기하 급수적으로 많은 솔루션을 가질 수 있으므로 해당 DNF 수식은 기하 급수적으로 많은 절을 가질 수 있습니다. 이 CNF 공식을 변환하십시오 :
해당하는 DNF 공식으로 : 절이 너무 많습니다. 한마디로 : CNF는 작지만 DNF는 그렇지 않습니다. CNF는 암시 적이며 DNF는 명시 적입니다.
다음 문제는 NP-complete입니다. DNF 인스턴스가 주어지면 모든 절을 위조하는 변수가 할당되어 있습니까?
방금 한 가지 더 깨달았으므로 별도의 대답이 필요합니다. 질문의 추정은 전적으로 사실이 아닙니다. BDD (Binary Decision Diagram)는 DNF의 간결한 / 정제 된 표현으로 볼 수 있습니다. BDD를 사용하는 SAT 솔버가 있지만 더 이상 나타나지 않습니다.
부위 함수에 대한 다양한 표현의 다른 속성을 연구 하는 Darwiche와 Marquis 의 멋진 논문이 있습니다.
이 추가 답변은 이전 답변에 대한 의견을 나누는 피드백으로 의미됩니다.
splitbyzero가 말했듯이 CNF와 DNF가 같은 동전의 양면이라는 것은 사실입니다.
만족스러운 과제를 찾아야하는 경우 DNF는 명시 적으로 만족스러운 과제 (DNF 만족도는 속함)를 나타내므로 명시 적 이며, CNF는 만족스러운 과제를 눈에 감아 감싸기 위해 암시 적입니다 (CNF 만족도는 N입니다) P - c o m p l e t e ). 우리는 CNF 공식을 지수 적으로 크기가 정할 수없는 동등한 DNF 공식으로 풀고 풀 수있는 절차를 모릅니다. 이것은 이전의 대답의 요점이었습니다 (이러한 예제는 최선의 선택이 아니었지만 지수 폭발을 보여주기위한 것입니다).
반대로, 위조 할당을 찾아야하는 경우 CNF는 위조 할당을 명시 적으로 표시하므로 명시 적이지만 (CNF Falsifiability는 속함 ) DNF는 위조 할당을 눈에서 감추기 위해 감싸고 감아 서 암시 적입니다 (DNF Falsifiability) 는 N P - c o m p l e t e )이다. 우리는 DNF 공식을 기하 급수적으로 계산할 수없는 동등한 CNF 공식으로 풀고 풀 수있는 절차를 모릅니다.
한쪽 끝에서 모순, 즉 만족할 수없는 공식이 있습니다. 반대쪽 끝에서 우리는 Tautologies, 즉 부정 할 수없는 공식을 가지고 있습니다. 가운데에는 만족스럽고 반박 할 수있는 공식이 있습니다.
변수가 있는 CNF 공식 에서 길이 k 의 모든 절은 2 n - k를 명시 적으로 인코딩합니다. 위조 할당을 합니다.
변수가 있는 DNF 공식 에서 길이 k 의 모든 항은 2 n - k를 명시 적으로 인코딩합니다. 만족하는 대입을 합니다.
절이없는 CNF 공식은 잘못된 지정이 없기 때문에 Tautology입니다. 빈 절 (다른 모든 절을 포함)을 포함하는 CNF 공식은 모순입니다. 왜냐하면 빈 절 ( )은 모든 2 n 지정이 위조 임을 나타냅니다 . 다른 CNF 공식은 모순이거나 중간에있는 공식 중 하나입니다 ( 이 두 경우를 구별 하는 것은 N P - c o m p l e t e입니다 ).
용어가없는 DNF 수식은 만족스러운 할당이 없기 때문에 모순입니다. 빈 용어 (다른 모든 용어를 포함)를 포함하는 DNF 공식은 Tautology입니다. 빈 용어 ( )는 모든 2 n 지정이 만족 됨을 나타냅니다 . 다른 DNF 공식은 Tautology이거나 중간에있는 공식 중 하나입니다 ( 이 두 경우를 구별 하는 것은 N P - c o m p l e t e입니다 ).
CNF 공식을 사용하여 위의 두 경우를 구별한다는 것은 조항의 존재에 의해 집합 적으로 가져온 모든 위조 할당이 모든 2 n 을 포함하는 방식으로 겹치는 지 여부를 알 수 있음을 의미합니다 대입 합니다 (이 경우 공식은 모순, 그렇지 않으면 만족할 수 있습니다).
DNF 식으로 집합 적 용어가 존재 제기 모두 만족시키는 할당이 모두 커버하는 등의 방법으로 중복 여부를 알 수있는 수단 위에 2가지 경우 구별 이 경우 수식 동의어 반복이다 (과제를 그렇지 않으면 반증 가능합니다).
이러한 관점에서 CNF 만족도와 DNF Falsifiability가 계산 경도면에서 왜 동등한지가 더 명확 해집니다. 기본 작업이 정확히 동일하기 때문에 실제로 동일한 문제이므로 여러 세트의 합집합이 모든 가능성의 공간과 같은지 여부를 알 수 있습니다. 있습니다. 이러한 과제는 우리를 더 넓은 계산 영역으로 이끌어냅니다.이 문제에 대해 무시할 수없는 진보를 이루기 위해 열렬히 탐구해야 할 길 중 하나는 겸손한 견해입니다. 궁극적으로 획기적인 이론적 발전을 가져올 수 있지만, 실제로 놀라운 발전을 계속 가져올 것입니다.
그러한 과제의 어려움은 그러한 세트가 포함-배제 방식으로 격렬하게 겹치는 것입니다.
이러한 중첩의 존재는 정확하게 계수의 경도가 존재하는 곳입니다. 게다가, 우리가 그 세트를 겹치게한다는 사실은 그럼에도 불구하고 솔루션 공간이 기하 급수적으로 큰 컴팩트 수식을 가질 수있게하는 이유입니다.
이 스레드 (특히 Giorgio Camerani의 답변)의 모든 답변을 멋진 테이블로 전환하여 이중성을 한 눈에 볼 수 있도록 결정했습니다.
: DNF에서 CNF로 (또는 그 반대로) 이러한 검색 문제는 출력 크기가 크기 때문에 지수 시간이 필요합니다. 그들은 FPSPACE에 있습니다. 사실, 그들은 다항식 시간 비트 그래프를 가진 함수로 해결할 수 있습니다.이 함수는 지수 크기 출력 함수보다 효율적이지만,이 클래스에는 이름이 없습니다. 다중 시간 감소에 대한 일반적인 개념은 다항식 크기 출력을 가진 함수에 대해서만 잘 작동합니다. 현재 사례에 맹목적으로 적용하면 출력 크기로 인해 이러한 모든 검색 문제가 FEXP 완료됩니다.
: 이러한 검색 문제는 다항식 시간 비트 그래프를 사용하여 지수 시간 함수로 해결할 수 있습니다. . 그러나 그들은 또한 해결할 수 있습니다, and conversely, they are NP-hard under poly-time Turing reductions (many-one reductions make no sense here, as we are comparing a search problem with a decision problem).
Shortest answer to the question: showing satisfiability (solving SAT) via DNF can only be done in exponential time according to the table above.