답변:
알리, 좋은 질문입니다.
어떤 문제 P가 계산 상 어렵다는 것을 보여주고 싶다고 가정하자. 이제 우리는 아직 효율적인 알고리즘이 없다는 사실에 기초하여 P가 어렵다고 추측 할 수 있습니다. 그러나 이것은 다소 희미한 증거입니다. P를 보는 멋진 방법을 놓친 것일 수 있습니다. 따라서 P가 어렵다고 추측하기 위해 더 많은 증거를 축적하고 싶습니다. 감소는 정확히 그렇게 할 수있는 도구를 제공합니다! 다른 자연 문제 Q를 P로 줄일 수 있다면, P는 적어도 Q만큼 어렵습니다. 그러나 Q는 완전히 다른 수학 영역에서 문제가 될 수 있으며 사람들은 수십 년 동안 Q를 풀기 위해 고군분투했을 수도 있습니다 . 따라서 우리는 Q가 P가 어렵다는 증거로 효율적인 알고리즘을 찾지 못하는 것을 볼 수 있습니다. 우리가 그런 Q를 많이 가지고 있다면
이것이 바로 NP- 완전성 이론이 제공하는 것입니다. 문제가 NP- 완전하다는 것을 증명한다면, 그 경도를 수백 가지의 다른 문제의 경도와 연관 시켰습니다. 따라서 도덕적으로 말하면 문제가 실제로 어렵다는 것을 확신 할 수 있습니다.
문제 증명 NP-Complete은 연구중인 일반적인 문제에 대한 효율적이고 정확한 해결책을 찾지 않아도되기 때문에 연구 성공입니다. 그것은 당신의 문제가 문제의 클래스의 구성원이라는 것을 증명하여 아무도 어떤 문제에 대해서도 효율적이고 정확한 알고리즘을 찾을 수 없었으며, 어떤 문제에 대한 그러한 해결책은 모든 문제에 대한 해결책을 암시합니다 문제.
문제가 여전히 있기 때문에 일반적으로 디딤돌입니다. 요구 사항을 완화해야합니다. 보통 사람들은 "효율적인", "정확한"또는 "일반적인"중 하나 이상을 이완시키는 방법을 알아 내려고 노력합니다. 비효율적이고 정확하며 일반적인 알고리즘은 이러한 알고리즘의 지수에서 더 좋고 더 나은 상수를 찾으려는 시도입니다. 효율적이면서도 유효하고 일반적인 것은 근사 알고리즘에 대한 연구입니다. 효율적이고 정확하지만 일반적이지 않은 것은 고정 매개 변수 다루기성에 대한 연구와 효율적인 알고리즘을 찾을 수있는 입력의 서브 클래스 검색입니다.
두 명의 다른 사람이 문제를 증명하고 싶은 두 가지 사례를 보자. :
a) 소프트웨어 프로젝트를 진행하고 있습니다. 시스템을 지정하면 응용 프로그램의 아키텍처를 정의하기 시작합니다. 여기에는 큰 문제를 해결하는 것이 포함되며 응용 프로그램이 더 작은 문제를 처리해야합니다. 이러한 작은 문제 중 하나에 대해 효율적인 (응용 프로그램이 느려지지 않기를 원합니다!) 알고리즘을 찾아야한다고 가정 해 봅시다. 한동안 고군분투하면 다항식 알고리즘을 찾을 수 없습니다. 그렇다면이 문제는 매우 어려울 수 있으므로 효율적인 알고리즘을 찾는 것이 매우 어렵거나 불가능합니다. 문제가 N P - c o m p l e t e 임을 증명함으로써, 이러한 추측에 대한 증거가 있으므로 다른 접근 방식을 고려하기 시작해야합니다 (예 : 문제를 쉽게 변경하도록 변경).
b) 당신은 복잡성 이론을 연구하고 있습니다. 정의에 따라 필요한 리소스 수, 즉 문제 해결에 따라 문제 (또는 문제 클래스)를 특성화하려고합니다. 특정 문제가 임을 증명 하면 다음과 같은 통찰력을 얻을 수 있습니다.
i) 문제에 대한 광범위한 지식을 알고 있습니다. 단일 문제를 해결하는 대신 문제 클래스 를 사용하면 새로운 통찰력을 얻을 수 있습니다.
ii) 다른 방법으로 를 증명하려는 연구를 허용 합니다. 어쩌면 문제는보다 공격에 쉽게 3 - S T .
문제를 요약하고 특성화하면 일반적인 기술을 사용할 수 있습니다. 관련 수업을 공부하면 수학과 과학에서 일반적으로 발생하는이 특정 문제의 특성에 신경 쓰지 않고 추상적 인 수준으로 생각할 수 있습니다. 개별 멤버 대신 클래스를 사용하면 알려진 기술을 사용할 수 있으며 통찰력을 하나의 개체가 아닌 더 많은 수의 개체에 적용 할 수 있습니다.
각 문제는 다른 문제와 관련이 있습니다. 또한 문제와 복잡성 클래스 사이에는 관계가 있습니다.
따라서 하나의 문제를 NPC로 분류하면 일반적으로 복잡성 클래스뿐만 아니라 다른 문제에 대한 통찰력을 얻을 수 있습니다.
예를 들어 그래프 동 형사상 (GI) 문제를 생각해보십시오. 다음 논문에서 :
Uwe Schöning, Graph isomorphism은 낮은 계층에 있으며, 컴퓨터 과학의 이론적 측면에 관한 제 4 차 연례 심포지움의 절차 , 1987, 114-124; 또한 : Journal of Computer and System Sciences, vol. 37 (1988), 312-323]에 기재되어있다.
만약 GI ∈ NPC라면, 다항식 계층 구조 (PH)는 두 번째 수준으로 무너 지는 것으로 입증된다 . 이것은 구조적 복잡성 이론에서 중요한 돌파구가 될 것입니다.