SAT 솔버는 하나의 수량 자로 부울 수식의 유효성을 확인할 수있는 강력한 방법을 제공합니다.
예를 들어, 의 유효성을 검사합니다 . φ ( x ) , SAT 솔버를 사용하여 φ ( x ) 가 만족 스러운지 여부를 결정할 수 있습니다. ∀ x 의 유효성을 검사합니다 . φ ( x ) , SAT 솔버를 사용하여 ¬ φ ( x ) 가 만족 스러운지 여부를 결정할 수 있습니다. (여기서 x = ( x 1 , … , x n ) 은 부울 변수 의 n- 벡터이며 φ 부울 수식입니다.)
QBF 솔버는 임의의 수량자를 갖는 부울 공식의 유효성을 확인하도록 설계되었습니다.
수량자가 두 개인 수식이 있으면 어떻게합니까? 유효성 검사를위한 효율적인 알고리즘이 있습니까? QBF에 일반 알고리즘을 사용하는 것보다 낫습니까? 좀 더 구체적으로 말하면 형식의 수식이 있습니다. ∃ y . ψ ( x , y ) (또는 ∃ x . ∀ y . ψ ( x , y ) )의 유효성을 확인하고 싶습니다. 이에 대한 좋은 알고리즘이 있습니까? 편집 4/8 : 이 수식 클래스는 때때로 2QBF로 알려져 있으므로 2QBF에 대한 좋은 알고리즘을 찾고 있습니다.
더 전문화 : 내 특별한 경우에는 형식의 수식이 있습니다. ∃ y . 유효성을 확인하고자하는 f ( x ) = g ( y ) , 여기서 f , g 는 k 비트 출력 을 생성하는 함수입니다 . QBF의 일반 알고리즘보다이 특정 종류의 수식의 유효성을 확인하는 알고리즘이 더 효율적입니까?
추신 : 복잡한 이론에서 최악의 경도에 대해서는 묻지 않습니다. 실제로 유용한 알고리즘에 대해 묻고 있습니다 (SAT가 NP-complete 인 경우에도 최신 SAT 솔버가 많은 문제에 실제로 유용하기는하지만).