C++ 라이브러리로 MiniSat을 사용할 때, 모든 새로운 변수는 결정 변수 또는 비 결정 변수로 생성 될 수 있습니다.MiniSat의 비 결정 변수의 의미는 무엇입니까?
솔직히 분기 할 때 어떤 변수를 사용할 지 결정할 때 비 결정 변수는 고려되지 않습니다. 그러나 솔라가 SAT를 반환 할 때 공식이 실제로 UNSAT 임에도 불구하고 내 프로젝트에서 솔리드가 동등한 관계에있는 대신 결정되지 않은 변수가 왼쪽에있을 때 문제가 발생했습니다.
비 결정 변수가 2 변수보다 긴 수식에있는 경우에만 발생합니다 (2 변수 수식 경로는 해석자의 특수 사례이므로 다른 방식으로 동작 함). .
CNF의 적합성은 무엇을 의미합니까? 즉 모든 변수를 결정 변수로 표시하면 모든 절에 하나 이상의 리터럴이 true로 평가되면 CNF가 SAT라고 말할 수 있습니다. 간단한 결정으로 CNF에 대해 CNF는 모든 결정 변수가 true 또는 false로 설정되고 모든 절에 true로 평가되는 리터럴 또는 undef가있는 경우 SAT로보고됩니다. 그게 사실이야? – Xarn
Minisat은 모든 결정 변수에 값이 성공적으로 할당 된 경우 SAT를보고합니다. 그것은 다른 것에 대해 상관하지 않습니다. UNSAT는 Minisat이 모든 의사 결정 변수에 값을 할당 할 수있는 방법을 찾을 수 없다면보고됩니다. 왜냐하면 단위 규칙을 적용하면 변수가 모두 소진되기 전에 항상 충돌이 발생하기 때문입니다. 충돌로 인해 현재 할당으로 인해 단위가 된 절을 만족시키기 위해 변수가 참이고 거짓 일 필요가있었습니다. –