np hard 예제

일반적인 오해는 “NP 하드”의 NP가 실제로 “비 결정적 다항식 허용 문제”를 의미 할 때 “비 다항식”을 의미한다는 것입니다. [4] NP 하드 문제에 대한 다항식 시간 알고리즘이 없다고 의심되지만, 이것은 입증되지 않았습니다. [5] 또한 모든 문제를 다항식 시간으로 해결할 수 있는 클래스 P가 NP 클래스에 포함됩니다. [6] NP 경도(비결정적 다항식 시간 경도)는 계산 복잡성 이론에서 비공식적으로 “적어도 NP에서 가장 어려운 문제만큼 어려운” 문제 클래스의 특성을 정의합니다. NP 하드 문제의 간단한 예는 하위 집합 합계 문제입니다. 결정 대 최적화 문제 NP 완전성은 의사 결정 문제의 영역에 적용됩니다. 최적화 문제보다 의사 결정 문제의 난이도를 비교하는 것이 더 쉽기 때문에 이러한 방식으로 설정되었습니다. 그러나 실제로는 다항식 시간에 의사 결정 문제를 해결할 수 있게 되면 다항식 시간에 해당하는 최적화 문제를 해결할 수 있습니다(의사 결정 문제에 대한 다항식 호출 횟수 사용). 따라서 의사 결정 문제의 어려움을 논의하는 것은 최적화 문제의 어려움을 논의하는 것과 실제로 동일합니다. (소스 참조 2).

예를 들어 정점 커버 문제를 고려해 보십시오(그래프를 지정하면 모든 모서리를 덮는 최소 크기의 정점 세트를 찾으십시오). 최적화 문제입니다. 해당 결정 문제는, 방향이 없는 그래프 G와 k가 주어지며, 크기 k의 정점 커버가 있습니까? 또 다른 NP-완료 문제는 일부 매개변수 k에 대해 공용구조가 지정된 단순 다각형과 동일한 k 별 모양의 다각형이 있는지 여부를 결정하는 것입니다. 최적화 문제, 즉, 지정된 단순 다각형과 결합된 별 모양다각의 최소 개수(최소 k)를 찾는 것은 NP 하드입니다. 일부 NP 하드 최적화 문제는 일부 상수 근사치 비율(특히 APX의 경우)에 근접하거나 심지어 근사치 비율(PTAS 또는 FPTAS에 있는 문제)까지 다항식 시간일 수 있습니다. 결정 문제 H는 NP의 모든 문제 L에 대 한 경우 NP 하드, L에서 H.[1]:80 동등한 정의 는 NP에 있는 모든 문제 L H.[7] Informall에 대 한 오라클 기계에 의해 다항식 시간에 해결 될 수 있어야 하는 데 필요한 다항식 시간 y, 우리는 H를 해결하기위한 서브 루틴으로 이러한 오라클 기계를 호출 할 수있는 알고리즘을 생각할 수 있으며, 서브 루틴 호출이 계산하는 한 단계만 소요되는 경우, 다항식 시간에 L을 해결합니다. 정의: 다항식 시간에 비결정적 튜링 머신으로 해결할 수 있는 것보다 본질적으로 더 어려운 의사 결정 문제의 복잡성 클래스입니다. 조합 최적화 문제의 결정 버전이 NP 완전 문제의 클래스에 속하는 것으로 판명되면 최적화 버전은 NP 하드입니다. 또 다른 정의는 NP 완전 문제 G에서 H.[1]:91 NP의 모든 문제 L이 다항식 시간에서 G로 감소함에 따라 다항식 시간에서 H로 감소하도록 요구하는 것입니다. 어색하게도, 그것은 또한 검색 문제, 또는 최적화 문제를 포함, 예를 들어, 결정을 어려운 클래스 NP를 제한하지 않습니다. NP 하드하지만 NP 완전하지 않은 의사 결정 문제가 있습니다(예: 중지 문제). 이것은 “프로그램과 입력을 주어 영원히 실행될 것인가?” 를 묻는 문제입니다.

즉, 예 / 아니오 질문입니다, 그래서 이것은 결정 문제입니다. 중단 문제는 NP 하드이지만 NP 완전하지 않다는 것을 증명하기 쉽습니다. 예를 들어, 부울 만족성 문제는 모든 진실 값 할당을 시도하는 튜링 기계의 설명으로 변환하여 중단 문제로 줄일 수 있으며, 수식을 중지하고 그렇지 않으면 중지하는 수식을 만족시키는 것을 발견하면 무한 루프. 또한 NP의 모든 문제는 제한된 수의 작업에서 정의할 수 있지만 일반적으로 중단 문제는 이해할 수 없기 때문에 중단 문제가 NP에 있지 않다는 것을 쉽게 알 수 있습니다.