DNF가 아닌 SAT에 CNF가 사용되는 이유는 무엇입니까?


22

거의 모든 SAT 솔버가 DNF 대신 CNF를 사용하는 이유를 잘 모르겠습니다. DNF를 사용하면 SAT를 해결하는 것이 더 쉬운 것 같습니다. 결국, 당신은 단지 일련의 함축을 스캔하고 그들 중 하나가 변수와 그 부정을 모두 포함하지 않는지 확인해야합니다. CNF의 경우 이와 같은 간단한 절차는 없습니다.


5
모든 구속 조건 솔버가 CNF를 입력으로 사용하는 것은 아닙니다. 원래 제약 조건 세트의 구조가 유지되기 때문에 일부는 선호하지 않습니다.
Dave Clarke

1
이 질문은 잘못된 전제를 가지고 있으며 현재 말한 것과 같은 높은 등급을받을 가치가 있다고 생각하지 않습니다. SAT는 CNF 공식의 솔루션으로 정의 됩니다. DNF를 해결하는 데 문제가 있지만 ( 만족도를 만족시키는 것으로 부를 수도 있음 ) CS에서 SAT라고 부르지 않습니다. & imho 이것은 cs.se로 마이그레이션해야합니다. 또 다른 참고 사항-CNF를 DNF로 변환하거나 그 반대로 변환하는 것은 실제로 특정 경우에 잘못 실패 하는 압축 알고리즘 과 매우 유사하거나 볼 수 있습니다 (지수 폭발로 이어짐) 크기)
vzn

10
@vzn : 실제로, "SAT가"에 대한 만족 할당 찾는 문제를 참조 종종 사용되는 모든 부울 식. CNF-SAT는 가장 흥미로운 특수 사례이므로 "SAT"를 사용하여 CNF-SAT를 특히 일종의 시네 치도 체로 지칭하는 경향이 있습니다. 물론 DNF-SAT는 CNF-TAUTOLOGY를 효율적으로 해결할 수있는 것과 같은 방식으로 효율적으로 해결할 수 있습니다. 그 질문은 그것을 깨닫지 못한다는 전제로 보인다.
Niel de Beaudrap

답변:


56

인해 카프에 3SAT에 SAT에서 교과서 감소는 임의의 부울 식 변환 에 "등가"CNF 부울 식으로 Φ ' 다항식 크기 되도록, Φ는 경우에만, 만족할이며 Φ는 ' 만족할 수있다. 엄밀히 말하면,이 두 공식은 Φ ' 에 추가 변수가 있지만 Φ ' 의 값은 실제로 새로운 변수에 의존하지 않기 때문에 동일 하지 않습니다.ΦΦ ΦΦΦΦ

임의의 부울 공식에서 DNF 공식으로의 유사한 감소는 알려져 있지 않습니다. 알려진 모든 변환은 수식의 크기를 기하 급수적으로 증가시킵니다. 또한, P = NP가 아니라면, 그러한 감소는 불가능하다!


afaik DNF에서 CNF 로의 변환 및 그 반대로는 P와 NP와 정확히 동일하지는 않지만 (NP보다 "큰"클래스의 경우) 중요한 복잡한 클래스 분리와 관련이있을 수 있지만 문제는 다음과 같습니다. CNF와 DNF 간의 변환은 결정적인 문제가 아니며 결정적인 문제로 바꿀 수있는 여러 가지 방법이 있습니다.
vzn

10
JeffE의 요점은 DNF-SAT가 P에 있으므로 P = NP가 아니라면 NP-complete가 될 수 없다고 생각합니다.
Luke Mathieson

2
"알려진 모든 변환"은 현재의 지식을 감안할 때 정확하지 않습니다. 알고리즘과 상관없이 지수 공간 블로우 업을 필요로하는 DNF <=> CNF 공식 / 변환이 있습니다 ... 이 질문에 대한 답은 힌트입니다. abbrev "DNF-SAT"는 문헌의 어느 곳에서나 사용됩니까? 그것을 직접보고 기억하지 마십시오 ... 그것은 본질적으로 나에게 혼란스러워 보입니다 ... DNF 만족은 결정 문제입니다, DNF <-> CNF 변환은 함수 문제입니다. 큰 대답은 ...
vzn

@ Jɛ ff E : 여기서 "임의 부울 공식"이 무엇을 의미하는지 명확히 하시겠습니까? Karp의 논문 , 92 페이지를 보면 SATISFIABILITY는 CNF 공식에 정의되어 있습니다. 이것은 OP의 질문에 대한 귀하의 답변에는 영향을 미치지 않지만 임의의 부울 수식 (즉, CNF에 반드시 포함되지는 않는 수식)에 대한 더 일반적인 결과가 없는지 확인하려고합니다. 덕분에
생기는 폐액

22

대부분의 중요한 것들이 언급되었지만 몇 가지 점을 강조하고 싶습니다.

  1. DNF 공식의 만족도는 P
  2. CNF 공식의 만족도는 NP입니다
  3. CNF 공식이 타올 로지인지 테스트
  4. DNF 공식이 tautology인지 테스트
  5. DNF를 부정하면 CNF가 나오고 그 반대도 마찬가지입니다

따라서 SAT 솔버는 만족도를 목표로하고 선형 시간의 만족도를 유지하면서 모든 수식을 CNF로 변환 할 수 있기 때문에 CNF를 사용합니다.



1
@TayfunPay 그들이합니다. 예를 들어 입니다. 동일한 변수를 포함하는 절을 두 번 허용하지 않으면 빈 절 집합 인 타우 톨 로지의 단일 표현이 있습니다. {{¬xx}}
Mikolas

3
@Tayfun 나는 정의가 일반적으로 절에서 반복 변수를 허용하지 않는다는 것에 동의하지만 빈 절 집합을 허용하지 않는 정의를 본 적이 없다고 생각합니다. (그리고 왜 당신이 그렇게하고 싶은지 분명하지 않습니다)
Mikolas

2
@Tayfun 1) CNF에 자율 학이 없거나 빈 절 집합이 CNF가 아니라는 출판물을 알려 주시겠습니까? 2) 빈 절 집합을 허용하지 않으면 빈 절도 허용하지 않아야하며 false도 나타낼 수 없습니다. 3) CNF에서 true 및 / 또는 false를 허용하지 않으면 대표 할 수있는 속성이 손실됩니다. 모든 부울 함수, 왜 그렇게하고 싶습니까?
Mikolas

1
"어떤 주어진 절에서 변수 나 리터럴을 반복해서는 안됩니다." --- 빈 수식이나 절을 허용하지 않습니다. BTW 빈 조항을 허용하지 않으면, 더 이상 해결 논증 증명을 할 수 없으며, 이는 자동 추론의 상당히 중요한 부분을 구성합니다.
Mikolas

18

SAT 솔버는 CNF를 "사용"하지 않습니다. CNF는 입력으로 제공되며 CNF를 해결하기 위해 최선을 다합니다. 귀하의 질문이 지적했듯이 표현은 모든 것입니다 .DNF가 같은 크기의 CNF보다 만족 스러운지 여부를 훨씬 쉽게 알 수 있습니다.

이것은 왜 SAT 솔버가 주어진 CNF를 DNF로 바꾸고 결과 DNF를 해결할 수 없는지에 대한 질문으로 이어지고, 이것을 시도하는 것은 표현 문제를 이해하는 데 좋은 연습입니다.


11

7 2013년 9월 : 페이지의 추가 답변을 추가, 체크 바닥


기본적으로, DNF 수식 절 논리합 각 절 C 내가 = L에게 I를 , 1. . . L I , K는 리터럴의 연동 해있다. 리터럴 l 과 부정 ¬ l 이 모두 포함 된 경우에만 충돌 하는 조항 c i를 호출 해 봅시다 . 충돌하지 않는 각 절이 단지 2 n을 인코딩한다는 것을 쉽게 알 수 있습니다 -c1...cmci=li,1...li,kcil¬l2nk공식의 솔루션. 따라서 전체 DNF는 솔루션의 열거입니다. 수식은 기하 급수적으로 많은 솔루션을 가질 수 있으므로 해당 DNF 수식은 기하 급수적으로 많은 절을 가질 수 있습니다. 이 CNF 공식을 변환하십시오 :

l1l2l3l4

l5l6l7l8

l9l10l11l12

l13l14l15l16

l17l18l19l20

해당하는 DNF 공식으로 : 절이 너무 많습니다. 한마디로 : CNF는 작지만 DNF는 그렇지 않습니다. CNF는 암시 적이며 DNF는 명시 적입니다.

다음 문제는 NP-complete입니다. DNF 인스턴스가 주어지면 모든 절을 위조하는 변수가 할당되어 있습니까?


4
올바른 LaTeX 형식을 얻으려면 \ and 및 \ or를 \ land 및 \ lor (또는 \ wedge 및 \ vee)로 바꾸십시오.
Jeffε

2
정규 CNF 로의 변환에 대해 본질적으로 더 간결한 것은 없습니다. OP 질문의 핵심은 보조 변수를 사용하여 이러한 "상당한"CNF 함수를 만들 수 있다는 것입니다. 만족도 테스트 대신 다른 문제를 해결하기 위해 DNF로 수행 할 수있는 비슷한 근사치가있을 수 있습니다. (
동등한

1
Giorgio Camerani의 이러한 통찰력은 좋지 않습니다. CNF로 ​​변환하면 절 수가 기하 급수적으로 증가 할 수 있습니다. 동일한 예를 선택하고 "and"를 "or"로 바꿉니다. 이 작은 DNF 표현에서 CNF 로의 변환은 거의 동일합니다. 그들은 그들과 약간의 관계를 가지고 있습니다.
splitbyzero

@dividebyzero : 귀하의 의견을 해결하기 위해 별도의 답변을 썼습니다.
Giorgio Camerani

6

방금 한 가지 더 깨달았으므로 별도의 대답이 필요합니다. 질문의 추정은 전적으로 사실이 아닙니다. BDD (Binary Decision Diagram)는 DNF의 간결한 / 정제 된 표현으로 볼 수 있습니다. BDD를 사용하는 SAT 솔버가 있지만 더 이상 나타나지 않습니다.

부위 함수에 대한 다양한 표현의 다른 속성을 연구 하는 Darwiche와 Marquis 의 멋진 논문이 있습니다.


4

이 추가 답변은 이전 답변에 대한 의견을 나누는 피드백으로 의미됩니다.

splitbyzero가 말했듯이 CNF와 DNF가 같은 동전의 양면이라는 것은 사실입니다.

만족스러운 과제를 찾아야하는 경우 DNF는 명시 적으로 만족스러운 과제 (DNF 만족도는 속함)를 나타내므로 명시 적 이며, CNF는 만족스러운 과제를 눈에 감아 감싸기 위해 암시 적입니다 (CNF 만족도는 N입니다) P - c o m p l e t e ). 우리는 CNF 공식을 지수 적으로 크기가 정할 수없는 동등한 DNF 공식으로 풀고 풀 수있는 절차를 모릅니다. 이것은 이전의 대답의 요점이었습니다 (이러한 예제는 최선의 선택이 아니었지만 지수 폭발을 보여주기위한 것입니다).PNPcomplete

반대로, 위조 할당을 찾아야하는 경우 CNF는 위조 할당을 명시 적으로 표시하므로 명시 적이지만 (CNF Falsifiability는 속함 ) DNF는 위조 할당을 눈에서 감추기 위해 감싸고 감아 서 암시 적입니다 (DNF Falsifiability) 는 N P - c o m p l e t e )이다. 우리는 DNF 공식을 기하 급수적으로 계산할 수없는 동등한 CNF 공식으로 풀고 풀 수있는 절차를 모릅니다.PNPcomplete

한쪽 끝에서 모순, 즉 만족할 수없는 공식이 있습니다. 반대쪽 끝에서 우리는 Tautologies, 즉 부정 할 수없는 공식을 가지고 있습니다. 가운데에는 만족스럽고 반박 할 수있는 공식이 있습니다.

변수가 있는 CNF 공식 에서 길이 k 의 모든 절은 2 n - k를 명시 적으로 인코딩합니다.nk2nk 위조 할당을 합니다.

변수가 있는 DNF 공식 에서 길이 k 의 모든 항은 2 n - k를 명시 적으로 인코딩합니다.nk2nk 만족하는 대입을 합니다.

절이없는 CNF 공식은 잘못된 지정이 없기 때문에 Tautology입니다. 빈 절 (다른 모든 절을 포함)을 포함하는 CNF 공식은 모순입니다. 왜냐하면 빈 절 ( )은 모든 2 n 지정이 위조 임을 나타냅니다 . 다른 CNF 공식은 모순이거나 중간에있는 공식 중 하나입니다 ( 이 두 경우를 구별 하는 것은 N P - c o m p l e t e입니다 ).k=02nNPcomplete

용어가없는 DNF 수식은 만족스러운 할당이 없기 때문에 모순입니다. 빈 용어 (다른 모든 용어를 포함)를 포함하는 DNF 공식은 Tautology입니다. 빈 용어 ( )는 모든 2 n 지정이 만족 됨을 나타냅니다 . 다른 DNF 공식은 Tautology이거나 중간에있는 공식 중 하나입니다 ( 이 두 경우를 구별 하는 것은 N P - c o m p l e t e입니다 ).k=02nNPcomplete

CNF 공식을 사용하여 위의 두 경우를 구별한다는 것은 조항의 존재에 의해 집합 적으로 가져온 모든 위조 할당이 모든 2 n 을 포함하는 방식으로 겹치는 지 여부를 알 수 있음을 의미합니다2n 대입 합니다 (이 경우 공식은 모순, 그렇지 않으면 만족할 수 있습니다).

DNF 식으로 집합 적 용어가 존재 제기 모두 만족시키는 할당이 모두 커버하는 등의 방법으로 중복 여부를 알 수있는 수단 위에 2가지 경우 구별 이 경우 수식 동의어 반복이다 (과제를 그렇지 않으면 반증 가능합니다).2n

이러한 관점에서 CNF 만족도와 DNF Falsifiability가 계산 경도면에서 왜 동등한지가 더 명확 해집니다. 기본 작업이 정확히 동일하기 때문에 실제로 동일한 문제이므로 여러 세트의 합집합이 모든 가능성의 공간과 같은지 여부를 알 수 있습니다. 있습니다. 이러한 과제는 우리를 더 넓은 계산 영역으로 이끌어냅니다.이 문제에 대해 무시할 수없는 진보를 이루기 위해 열렬히 탐구해야 할 길 중 하나는 겸손한 견해입니다. 궁극적으로 획기적인 이론적 발전을 가져올 수 있지만, 실제로 놀라운 발전을 계속 가져올 것입니다.

그러한 과제의 어려움은 그러한 세트가 포함-배제 방식으로 격렬하게 겹치는 것입니다.

이러한 중첩의 존재는 정확하게 계수의 경도가 존재하는 곳입니다. 게다가, 우리가 그 세트를 겹치게한다는 사실은 그럼에도 불구하고 솔루션 공간이 기하 급수적으로 큰 컴팩트 수식을 가질 수있게하는 이유입니다.


4

이 스레드 (특히 Giorgio Camerani의 답변)의 모든 답변을 멋진 테이블로 전환하여 이중성을 한 눈에 볼 수 있도록 결정했습니다.

DNFCNFtautology/unfalsifiabilitycoNP-completeP(each clause has a pair of P and ¬P)satisfiabilityP(sat. assignments are explicit)NP-completefalsifiabilityNP-completeP(fals. assignments are explicit)unsatisfiabilityP(each clause has a pair of P and ¬P)coNP-completeconversion to normal form, retaining equivalence()()conversion to normal form, retaining satisfiability()FPconversion to normal form, retaining falsiabilityFP()

(): DNF에서 CNF로 (또는 그 반대로) 이러한 검색 문제는 출력 크기가 크기 때문에 지수 시간이 필요합니다. 그들은 FPSPACE에 있습니다. 사실, 그들은 다항식 시간 비트 그래프를 가진 함수로 해결할 수 있습니다.이 함수는 지수 크기 출력 함수보다 효율적이지만,이 클래스에는 이름이 없습니다. 다중 시간 감소에 대한 일반적인 개념은 다항식 크기 ​​출력을 가진 함수에 대해서만 잘 작동합니다. 현재 사례에 맹목적으로 적용하면 출력 크기로 인해 이러한 모든 검색 문제가 FEXP 완료됩니다.

(): 이러한 검색 문제는 다항식 시간 비트 그래프를 사용하여 지수 시간 함수로 해결할 수 있습니다. (). 그러나 그들은 또한 해결할 수 있습니다FPNP[1], 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.


1
What is a "PL formula" and what does "NF" mean?
Joshua Grochow

4
There are a few issues here. (1) I think by "unfalsifiability" you mean "tautology". (2) KNF should be CNF.
Huck Bennett

2
Still not clear what you mean by "NF (retain satisfiability)". Does that mean an algorithm A such that A(φ) is satisfiable if φ is, but if φ is unsatisfiable then A(φ) can be either, and furthermore for all satisfiable formulae φ, A(φ) has the same output? That's what I would think from your notation, but this problem wouldn't be in P for CNFs. So what do you mean?
Joshua Grochow

1
(1) "조건 자 논리"는 "제안 논리"여야합니다. (2) 일반 형식으로의 변환은 의사 결정 문제가 아니라 기능 문제 (또는 "일반 형식"이 고유하지 않기 때문에 검색 문제)입니다. 따라서 표에 나와있는 의사 결정 등급은 부적절합니다.
Emil Jeřábek은 Monica

1
이것은 Δ거기서하세요?
Emil Jeřábek은 Monica
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.