내가 이해하는 것처럼, 당신은 두 가지 질문을하고 있습니다 : (1) 순진한 무력보다 더 영리한 SAT 알고리즘이 있습니까? (2) NP- 완전 문제를 해결할 때 단순히 YES / NO 답변을주는 알고리즘이 있습니까? 실제로 해결책을 찾지 않고 . 두 가지 질문에이 순서대로 대답하겠습니다.
(1) 무차별적인 힘없이, 즉 모든 가능성을 순진하게 시도하지 않고 문제를 해결하는 것이 완벽하게 가능합니다. 예를 들어, 현대의 완전한 SAT 솔버 는 특정 (부분) 할당이 솔루션으로 이어질 수없는 것으로 유추하거나 입증하는 영리한 알고리즘을 적용 할 수 있으므로 해당 부분을 조사조차하지 않습니다.
좀 더 일반적으로, NP-hard 문제조차도 종종 일종의 알고리즘 기반을 보여 주므로 무차별 대입보다 빠른 알고리즘을 설계 할 수 있습니다. 이 연구의 분야는 정확한 (지수) 알고리즘 입니다. 이러한 알고리즘은 기하 급수적 인 시간이 걸리지 만, 순진한 알고리즘보다 여전히 빠릅니다. 예를 들어, 대략 에서 TSP를 해결할 수 있습니다여기서 은 방문 할 도시의 수입니다. 이 방법은 값을 중간 정도까지 확장 할 수 없지만 Held & Karp 로 인해 고전적인 동적 프로그래밍 시간 알고리즘이 있습니다. 일반적인 기술에 대해서는 branch & bound를 참조하십시오 .n n O ( 2 n n 2 )아니 !엔엔O ( 2엔엔2)
(2) 명시적인 인증서없이 YES / NO를 출력하는 NP-complete 문제에 대한 "oracle 알고리즘"이 있습니다. 예를 들어 문제를 고려하십시오 .케이
( 문제)케이 그래프 와 정수 가 주어지면 꼭지점의 에 간단한 경로가 있습니까?k G k지케이지케이
위의 문제는 NP가 완료된 것으로 쉽게 나타납니다. 문제에 대한 알고리즘은 [1]에 나와 있습니다. 알고리즘 자체는 문제에 대한 YES / NO 답변 만 제공하지만 실제 자체 를 구성하기 위해 추가 트릭을 사용할 수 있습니다 . 보다 일반적으로, 그러한 "오라클 알고리즘"이 주어지면, 증인 자체를 추출하기 위해 조합 그룹 테스트의 도구를 사용할 수 있습니다.k영형※( 2케이)케이
[1] 윌리엄, 라이언. "길이의 경로 찾기 에서 시간." 정보 처리 서한 109.6 (2009) : 315-318. 출판사 링크 , PDFO ∗ ( 2 k )케이영형※( 2케이)