2012-07-06 2 views
6

부울 수식 : (x_ {1} 또는 x_ {2}) 및 (x_ {3} 또는 x_ {4}) 및 ..... 및 (x_ {2r-1 {1}, p_ {2}} 또는 x_ {2r}) x_ {i}은 집합에 속합니다. {p_ {1}, p_ {2}, ... p_ {99}, ~ p_ {1}, ~ p_ { 2}, ... ~ p_ {99}} 그리고 x_ {i} 수식의 일부 값이 참일 수 있는지를 확인해야합니다.부울 적합성 - 알고리즘

일반적으로 계산하기가 어렵다는 것을 알고 있습니다. 그러나 내가이 특별한 문제를 해결할 수있는 아주 빠른 방법이 있습니까? 지금까지 나는 역 추적을 시도했다. 즉, 가능한 모든 변수에 대해 가능한 모든 값 (0 또는 1이 그렇게 많지 않음)을 재귀 적으로 구속하며, 아직 가치가없는 모든 변수는 사소한 사실이다. 재귀에 들어가기 전에 수식을 chceck하고 (모든 변수에 값이없는 경우에도) 수식이 거짓이면 더 깊게 가지 않습니다. 그러나 너무 느립니다. 어떤 아이디어? 나는 도움에 매우 감사 할 것입니다.

+2

흥미로운 문제인 것처럼 들리 겠지만, [Math.StackExchange] (http://math.stackexchange.com/)는 알고리즘 개발에 많은 도움이 될 수 있습니다. 우리는 당신이 그것을 구현하는 것을 도울 것입니다! –

답변

5

OR 절당 두 개의 변수 만있는 경우 선형 시간 솔루션을 사용하는 2-SAT이 있습니다.