NP- 완전 문제 해결을위한 모든 알려진 알고리즘이 건설적인가?


11

인증서를 암시 적으로 생성하지 않고 NP- 완전 문제에 "예"를 올바르게 출력하는 알려진 알고리즘이 있습니까?

나는 만족도 오라클을 만족스러운 할당 파인더로 바꾸는 것이 간단하다는 것을 이해한다. 만족할만한 오라클이 원래의 문제와 그 변수의 결합을 해결할 것을 요구할 때마다 변수를 반복한다.

그러나 그러한 포장지가 유용할까요? 모든 앉은 솔버가 가능한 할당 공간을 검색합니까?

또는 솔버가 수학적 정리를 이용하여 솔루션이 존재해야 함을 증명할 수있는 NP- 완전 문제 유형 (여행사, 서브 세트 합계 등)이 있습니까? 모순에 의한 증거를하는 것처럼?

답변:


11

내가 이해하는 것처럼, 당신은 두 가지 질문을하고 있습니다 : (1) 순진한 무력보다 더 영리한 SAT 알고리즘이 있습니까? (2) NP- 완전 문제를 해결할 때 단순히 YES / NO 답변을주는 알고리즘이 있습니까? 실제로 해결책을 찾지 않고 . 두 가지 질문에이 순서대로 대답하겠습니다.

(1) 무차별적인 힘없이, 즉 모든 가능성을 순진하게 시도하지 않고 문제를 해결하는 것이 완벽하게 가능합니다. 예를 들어, 현대의 완전한 SAT 솔버 특정 (부분) 할당이 솔루션으로 이어질 수없는 것으로 유추하거나 입증하는 영리한 알고리즘을 적용 할 수 있으므로 해당 부분을 조사조차하지 않습니다.

좀 더 일반적으로, NP-hard 문제조차도 종종 일종의 알고리즘 기반을 보여 주므로 무차별 대입보다 빠른 알고리즘을 설계 할 수 있습니다. 이 연구의 분야는 정확한 (지수) 알고리즘 입니다. 이러한 알고리즘은 기하 급수적 인 시간이 걸리지 만, 순진한 알고리즘보다 여전히 빠릅니다. 예를 들어, 대략 에서 TSP를 해결할 수 있습니다여기서 은 방문 할 도시의 수입니다. 이 방법은 값을 중간 정도까지 확장 할 수 없지만 Held & Karp 로 인해 고전적인 동적 프로그래밍 시간 알고리즘이 있습니다. 일반적인 기술에 대해서는 branch & bound를 참조하십시오 .n n O ( 2 n n 2 )n!nnO(2nn2)

(2) 명시적인 인증서없이 YES / NO를 출력하는 NP-complete 문제에 대한 "oracle 알고리즘"이 있습니다. 예를 들어 문제를 고려하십시오 .k

( 문제)k 그래프 와 정수 가 주어지면 꼭지점의 에 간단한 경로가 있습니까?k G kGkGk

위의 문제는 NP가 완료된 것으로 쉽게 나타납니다. 문제에 대한 알고리즘은 [1]에 나와 있습니다. 알고리즘 자체는 문제에 대한 YES / NO 답변 만 제공하지만 실제 자체 를 구성하기 위해 추가 트릭을 사용할 수 있습니다 . 보다 일반적으로, 그러한 "오라클 알고리즘"이 주어지면, 증인 자체를 추출하기 위해 조합 그룹 테스트의 도구를 사용할 수 있습니다.kO(2k)k


[1] 윌리엄, 라이언. "길이의 경로 찾기 에서 시간." 정보 처리 서한 109.6 (2009) : 315-318. 출판사 링크 , PDFO ( 2 k )kO(2k)


완전한. k- 경로 용지는 내가 찾던 것과 정확히 일치합니다. 감사!
user82928
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.