문제가 NP- 완료임을 증명하기 위해 문제 간 축소를 구성하는 방법은 무엇입니까?


27

나는 복잡한 과정을 겪고 있으며 NPC 문제 사이의 감소를 생각해내는 데 어려움을 겪고 있습니다. 문제 사이의 감소를 어떻게 찾을 수 있습니까? 사용할 수있는 일반적인 트릭이 있습니까? 문제가 NPC임을 증명하도록 요청하는 문제에 어떻게 접근해야합니까?


4
실망 시켜서 미안하지만, 모든 것을 해결할 수있는 방법이 없다고 생각합니다. 인생의 많은 문제와 마찬가지로 각각의 고유 한 특징이 있습니다. 시간이 지남에 따라 각 문제를 해결하는 방법에 대한 올바른 이해를 얻게 될 것입니다.
Ran G.

1
그러한 문제에 접근하는 방법에 대한 유용한 지침이 있습니까? NPC임을 증명하는 질문을 보았을 때 완전히 사라졌습니다. 어떻게 접근해야합니까?
익명

답변:


45

마법의 총알이 없습니다. NP 경도 증거는 어렵다. 그러나 이러한 모든 증명을위한 일반적인 프레임 워크가 있습니다. NP-경도 증거와 투쟁에 대해 혼동 많은 학생들이 무엇을 그들이 분명히 불가능 파악 할 수있는 일을 할 생각하고 어떻게 그것을 할 수 있습니다. 그래서 여기에 어떤 문제가 NP-하드를 입증 할 수 있습니다.

첫째, 숙제 만하지 않는 한 문제를 줄이기 위해 어떤 NP-hard 문제를 결정해야합니다 . 이것은 주로 "냄새"의 문제입니다. 문제 설명의 아무 곳에 나 숫자 3이 나타나면 또는 3 C o l o r 또는 3 P a r t i t i o n에서 줄이십시오 . (예, 진지합니다.) 문제에 최적의 하위 시퀀스 또는 순열 또는 경로를 찾는 것이 포함 된 경우 H a m i l t o n i a3SAT3Color3Partition 또는 H a m i l t o n i a n P a t h . 문제가 특정 속성을 가진 가장 작은 하위 집합을 요구하면 C l i q u e ; 특정 속성을 가진 가장 큰 하위 집합을 요청하는 경우 I n d e p e n d e n t S e t를 시도하십시오. 비행기에서 무언가를하는 것이 문제라면, P를 시도하십시오HamiltonianCycleHamiltonianPathCliqueIndependentSet 또는 P N R T S P . 등등. 문제는 아무것도하지 같은 "냄새", 않으면 3 S T 또는 C I R C t S T는 아마 당신의 최선의 방법입니다.PlanarCircuitSATPlanarTSP3SATCircuitSAT

MinesweeperTetrisOneCheckersMoveSuperMarioBros

둘째, 실제 감소. 문제 X (내가 알고있는 NP 문제)를 문제 Y로 줄이려면 (증명하려는 것은 NP 하드 임), X 의 임의 인스턴스를 Y의 유효한 인스턴스로 변환하는 알고리즘을 설명해야합니다. 축소 알고리즘은 X- 인스턴스의 각 "기능"에 대해 특정 작업을 수행해야하며, 각 "기능"에 대한 출력 부분은 일반적으로 가젯 이라고합니다 .

그러나 기능은 무엇입니까? 문제 X에 따라 다릅니다. 예를 들면 다음과 같습니다.

  • 3SAT

  • 3Color

  • PlanarCircuitSat

가제트의 실제 형식은 감소 하는 문제 Y에 따라 다릅니다 . 예를 들어 그래프에 대한 문제를 줄이면 가제트는 작은 하위 그래프가됩니다. Wikipedia 기사를 참조하십시오. 예약 관련 문제로 줄어드는 경우 각 가젯은 예약 할 작업 집합이됩니다. Mario 에 대한 문제로 줄이면 각 가젯은 일련의 블록과 벽돌 및 Koopas가됩니다.

두 문제에 같은 종류의 물체가 관련된 경우 혼동 될 수 있습니다. 예를 들어 X와 Y가 모두 그래프에 문제가있는 경우 알고리즘은 하나의 그래프 (X 인스턴스)를 다른 그래프 (Y 인스턴스)로 변환합니다. 이 두 그래프를 혼동하지 않도록 현명하게 표기법을 선택하십시오. 또한 여러 색상의 잉크를 사용하는 것이 좋습니다.

마지막으로 축소 알고리즘은 세 가지 속성을 충족해야합니다.

  • 다항식 시간으로 실행됩니다. (일반적으로 쉽습니다.)

  • 축소 알고리즘 에 X 의 양의 인스턴스가 입력으로 주어지면 Y 의 양의 인스턴스가 출력으로 생성됩니다.

  • 감소 알고리즘이 출력으로 Y 의 양의 인스턴스를 생성하는 경우 입력으로 X 의 양의 인스턴스 가 제공되어야합니다 .

여기에는 중요한 미묘함이 있습니다. 귀하의 감소 알고리즘은, 한 방향으로 작동 에서 X의 인스턴스 Y의 인스턴스 만 알고리즘은 올바른 증명하는 두 방향의 변화에 대한 추론을 필요로한다. 또한 감소 알고리즘 주어진 X 인스턴스가 양수인지 음수인지를 알 수 없으므로 다항식 시간에 NP-hard 문제를 해결해야합니다!

그게 뭐야 . 방법은 단지 연습을 함께 제공됩니다.


5
3SAT3SATptruefalse

1
"감소 알고리즘이 출력으로 Y 의 양의 인스턴스를 생성하는 경우 입력으로 X 의 양의 인스턴스 가 제공되어야합니다 ":이 조건을 "감소 알고리즘에 음의 인스턴스 가 제공되는 경우"로 작성하는 것이 더 직관적 인 것처럼 보이지만 X를 입력으로 사용하면 출력으로 Y 의 음수 인스턴스를 생성합니다. ", 이 두 조건이 동일 하다는 점에 주목하고 JeffE가이를 작성하는 방법은 일반적으로 증거를 구성하는 것이 훨씬 쉬워집니다. X의 긍정적 인 인스턴스 또는 Y의 긍정적 인 인스턴스와 함께 작동합니다.
j_random_hacker

11

JeffE는 가장 일반적인 전략을 간략하게 설명합니다. 많은 NP- 완료 문제를 알고 매우 적합한 문제를 찾고 쉽게 줄일 수 있습니다.

또 다른 유효한 전략은 항상 3SAT (또는 다른 문제)를 사용하는 것입니다. 이것은 약간의 감소가 더 복잡 할 수 있지만 거꾸로 당신이 가지고있다 많은 문제의 다른 유형에 satifiability을 표현하는 경험을. 따라서 훌륭한 감축 파트너 (데드 엔드 포함)를 찾는 시간을 절약하고 더 어려운 경우에도 경험을 통해 신속하게 감축을 수행 할 수 있기를 바랍니다.

이 접근법에는 약간의 미학적 아름다움도있다 : (3) SAT는 NP- 완전성이 (거의) 직접적으로 입증 된 몇 안되는 문제 중 하나이다. 따라서 해당 증명에만 의존하면 "감소 트리"를 평평하게 유지하여 긴 줄임 체인을 피할 수 있습니다.


3
직접 결합이 단항에 주어진 때 경계 앞뒤가 맞지 문제가 NP-완료되었음을 증명하는 것은 너무 열심히하지 않고, 증명의 쉬운 방법입니다 몇 가지 문제 자체에서 줄일 오히려 쓸모가 없다하더라도, NP 완전 문제가 존재한다.
Alex ten Brink

3
NP가 완전히 완료된 것으로 입증 된 유일한 문제라는 주장에 대해서는 확신이 없습니다. 사실 당신이 엄격한 의미로 해석한다면 그것은 확실히 거짓입니다. Cook의 1971 년 논문은 SAT가 아닌 TAUT에 대해 이야기합니다 (카르 프 감소가 아닌 쿡 감소를 사용합니다) (증거는 Karp 감소에서 SAT가 NP- 완전하다는 증거도 쉽게 관찰합니다).
Kaveh

@Kaveh Huh? Tautology는 Co-Np 완료이므로 NP (-complete)로 알려져 있지 않습니다. 나는 Cook의 논문을 읽지 않았다.
Albert Hendriks

1
@Albert, 그럼 당신은 그것을 읽어야합니다. Cook 축소를 사용하면 NP와 coNP를 구분할 수 없습니다.
Kaveh
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.