NP-hard와 비교하여 NP-Complete 클래스가 중요한 이유는 무엇입니까?


19

계산 복잡성을 연구하고 있는데 NP-Complete (NPC) 문제가 왜 중요한 클래스인지 궁금했습니다. 주어진 NP 문제를 보여주는 데 관심이있는 이유는 NP-hard입니다.

또한 NPC의 정의를 이해하고 주어진 결정 문제를 보여주는 것이 NP-hard이며 NP에 있음을 알면 정확히 NPC 수단이라는 것을 알 수 있습니다.

그러나 내가 이해하지 못하는 것은이 개념이 왜 중요한가? 확실히, 시간 P에서 실행되는 NP 하드 알고리즘 (NP에 있든 없든)을 발견하면 것으로 나타났습니다 .=

이 개념이 왜 그렇게 중요한가?


3
두 번째 질문은 첫 번째 질문과 완전히 분리되어 있으므로 제거했습니다. 그러나 이는 매우 좋은 질문이므로 새 질문으로 질문하는 것이 좋습니다. 텍스트를 복구하려면 "편집 된 [언제든지]"링크를 클릭하십시오. 편집 내역이 표시되고 텍스트를 복사하여 붙여 넣을 수 있습니다.
David Richerby

답변:


16

NPC가 흥미로운 몇 가지 이유가 있습니다.

  • NP 클래스에는 흥미롭고 (실제적으로나 이론적으로도) 많은 문제가 포함되어 있으며, 이러한 문제 중 상당수는 NP-hard (따라서 NP-complete) 인 것으로 밝혀졌지만 NP 외부의 많은 문제는 거의 확실하지 않습니다. NPC는 이론적 인 관심 이상으로 , 어려운 것은 아니지만 어려운 일을 할 수 없을 정도로 어려운 그룹을 제공합니다.
    다시 말해, NPC는 아마도 우리가 다항식 시간을 풀 수 있기를 바라는 것의 한계 일 것입니다. PSPACE = P (예를 들어)를 시도해 보는 것이 좋습니다.
  • 이 클래스는 NP가 구조적으로 흥미 롭습니다. "비결정론으로부터 더 많은 계산 속도를 얻는가"의 기본 예입니다. 따라서 우리는 P = NP인지 아닌지에 관심이 있으며, NPC는 (아마도) 그것을 해결하는 데 중요한 요소입니다.
  • NP-hard (클래스로서)는 실제로 너무 커서 하나의 것으로 다루기에는 다양합니다 .NP 외부의 거대한 물건 뭉치를 포함 하여 NP- 완전 문제에서 줄일 수있는 모든 것 입니다. 일반적인 결과와 기술을 개발하려는 관점에서 볼 점은 없습니다.

원래 질문이 제목을 반영하도록 편집되었으므로 두 번째 질문의 답변도 숨겨야합니다.
Amnestic 2016 년

1
NP-hard는 NP의 NP-complete 문제를 포함하기 때문에 "NP 외부의 모든 것"이 아닙니다. 나는 당신이 무슨 뜻인지 이해하지만 간결하게 진술하는 방법을 모르겠습니다.
vonbrand

@vonbrand, 예, 나는 그것을 과장하여 과장했습니다 (어쩌면 광기 때문일까요?). 새 버전은 정확하지만 불행히도 느낌이 없습니다.
Luke Mathieson 1

9

생계를 위해 코드를 작성하는 사람의 관점에서 NP- 완전성에 대해 잘 알고 있어야합니다.

1. 잘못된 나무를 짖을 때 인식하기

NP- 완전 문제는 NP- 하드 문제 중 가장 쉬운 문제이지만, 우리가 알 수있는 한, 그러한 결정 문제를 해결하기 위해서는 입력의 크기에 기하 급수적으로 시간이 걸립니다. 따라서 해결하려는 문제가 NP-hard (일반적으로 문제에 대한 효율적인 솔루션이 일부 NP-complete 문제에 대한 효율적인 솔루션을 제공함)를 보여줌으로써 실질적인 문제로 알 수 있습니다. 당신은 할 수 있습니다 검색을 중지 정확히 일반적으로 그것을 해결하기 위해 효율적인 알고리즘. 대신, NP-hard 최적화 문제에 대한 근사치를 약속하고 나머지 프로젝트를 진행하는 알려진 알고리즘 중에서 선택할 수 있습니다.

2. 올바른 나무 찾기

컴퓨터는 종종 NP 하드 문제를 공격하는 데 사용되므로 일부 NP 하드 문제 인스턴스를 효율적으로 해결할 수있는 특수 솔버가 개발되었습니다 . 문제가 NP-complete임을 인식하는 것이 기존 도구 (SAT, ILP, SMT, CSP 등)를 찾기위한 첫 번째 단계입니다. 근사.


-4

"확실히 P 시간 (NP에 있든 없든)으로 실행되는 NP-hard 알고리즘을 발견하면 NP = P임을 알 수 있습니다. 왜이 개념이 중요한가?"

모든 NP 문제가 NPC 문제로 감소하지만 모든 NP 문제가 NP-hard 문제로 감소한다는 것은 사실이 아니므로 NP-hard가 P라는 알고리즘을 증명한다고해서 P = NP가 전혀 증명되지는 않습니다. 그러나 NPC 문제의 경우, 이것이 바로 "감소"의 의미입니다. 따라서 NPC 문제에 대한 P 알고리즘을 찾으면 P = NP임을 증명할 것입니다.


3
엑스엑스
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.