A를 B로 환원 할 수있게하십시오 (예 : . 따라서 를 수락 Turing 머신 은 의 Oracle에 액세스 할 수 있습니다. 허용 Turing 머신 이 이고 대한 오라클 이 . 감축 유형 :
튜링 감소 : 는 여러 번 쿼리 할 수 있습니다 .
Karp 축소 : "다항식 시간 튜링 감소"라고도 함 : 대한 입력은 다중 시간 으로 구성해야합니다. 또한 에 대한 쿼리 수 는 다항식으로 묶어야합니다. 이 경우 입니다.
튜링 감소 : 는 마지막 단계 에서 하나의 쿼리 만 만들 수 있습니다 . 따라서 오라클 응답을 수정할 수 없습니다. 그러나 대한 입력을 구성하는 데 걸리는 시간 은 다항식에 의해 제한 될 필요가 없습니다. 마찬가지로 : ( 다수 감소를 나타내는 )
경우 계산 가능한 함수 되도록 .
쿡 감소 : "다항식 시간 다 대일 감소"라고도 함 : 대한 입력을 구성하는 데 걸리는 시간 이 다항식에 의해 제한되어야 하는 다 대일 감소 . 동등하게 : ( 은 일대일 감소를 나타냄)
경우 폴리 시간 계산 가능한 함수 되도록 .
인색 감소 :의 모든 인스턴스 요리사 감소 : 또한 "다항식 시간 일대일 감소"라는 의 고유 한 인스턴스에 매핑 B . 동등하게 : ( ≤ p 1, parsimonious 감소를 나타냄)
경우 ∃ 폴리 시간계산 가능한 전단 사 함수를 F : Σ * → Σ * 되도록 F ( X ) ∈ B .
이러한 감소는 솔루션 수를 유지합니다. 따라서 입니다.
우리는 오라클 쿼리의 수를 제한하여 더 많은 유형의 축소를 정의 할 수 있지만, 제외하면 다른 사용 된 축소 유형에 대한 명명법을 올바르게 얻었는지 누군가가 친절하게 말할 수 있습니다. Cook-reduction 또는 parsimonious reduction과 관련하여 NP-complete 문제가 정의되어 있습니까? 누구든지 Cook에서 NP-complete이고 parsimonious reduction이 아닌 문제의 예를 친절하게 설명 할 수 있습니까?
내가 틀리지 않으면 # P-Complete 클래스는 Karp 축소와 관련하여 정의됩니다.