Emil Jerabek의 의견은 훌륭한 요약이지만, 같은 개념을 다소 간결하게 정의하고 이러한 모든 것 사이의 관계를 명확하게 정의하는 명확한 정의를 가진 다른 클래스가 있음을 지적하고 싶었습니다.
[경고 : 정의를 올바르게 받았다고 생각하지만 아래 사항 중 일부는 개인적 취향을 반영합니다. 그 위치에 대해 명확하게 노력했습니다.]
결정 론적 세계에서 함수 클래스는 함수의 모음 일뿐입니다 (일반적으로 "함수"라는 단어의 수학적 의미, 즉 맵 ). 때때로 특정 입력에 대해 "정의되지 않은"출력 인 "부분 함수"를 허용하려고합니다. (동일하게 모든 기능이 아닌 Σ * 의 하위 집합에 정의 된 함수 )Σ∗→Σ∗Σ∗
불행히도, 대한 두 가지 정의가 떠 다니고 있으며, 내가 말할 수있는 한 (도덕적으로는 동일하지만) 동등하지 않다는 것을 알 수 있습니다.FP
- (정의 1)는 다항식 시간으로 계산할 수있는 함수 클래스입니다. 사람들이 F N P , T F N P 에 대해 이야기하는 상황에서 F P 가 보이지 않을때마다이것이 내가 정의한 정의입니다.FPFPFNP,TFNP
비결정론 적 세계에서는 상황이 약간 재미있다. "부분, 다중 값 함수"를 허용하는 것이 편리합니다. 그러한 것을 이진 관계 , 즉 의 부분 집합 이라고 부르는 것은 당연합니다 . 그러나 복잡성의 관점에서 이러한 것들을 "비결정론 적 기능"으로 생각하는 것이 철학적으로나 정신적으로 유용하다. 이러한 정의 중 많은 부분이 다음 클래스 (명확히 알려지지 않은 경우 완전히 표준화 된 정의)에 의해 명확 해 졌다고 생각합니다.Σ∗×Σ∗
: 다항식 시간에 비 결정적 기계에 의해 계산 가능한 "부분, 다중 값 함수"클래스. 이것이 의미하는 것은 다중 시간 비결정론 적 기계가 있고 입력 x , 각각의 비결정론 적 분기에있어 어떤 출력을 받아 들여서 출력하거나 거부하고 출력하지 않도록 선택할 수 있다는 것입니다. 입력 x 의 "다중 값"출력은 x 를 입력으로지정했을 때 모든 비 결정적 분기의 모든 출력 집합입니다. 이 세트는 비워 둘 수 있으므로 "다중 값 함수"이므로 일부만 가능합니다. 우리는 이진 관계의 관점에서 생각하면, 관련이 대응 { ( X , Y ) : YNPMVxxx에서 계산의 일부 분기에 의해 출력됩니다 .{(x,y):y is output by some branch of the computation on input x}
: 총 "기능" N P M V 모든 입력에이며,X(정의에 따라서 출력한다) 적어도 하나 개의 브랜치 받아NPMVtNPMVx
NPSVNPMVΣ∗
NPSVtNPSVΣ∗→Σ∗NPSVt=FPNP∩coNP
NPMV⊈NPSVNPSVNPMV⊆cfgxgff항상 출력의 하위 집합입니다 . 적절한 질문은 모든 "함수"에 세분화 가 있는지 여부 입니다. 그렇다면 합니다.gNPMVNPSVNPMV⊆cNPSV
- PF (약간 덜 표준)는 폴리 타임으로 계산할 수있는 (잠재적으로 부분적인) 함수의 클래스입니다. 즉, 입력 시간에 입력 와 같은 폴리-시간 결정 기계가있는 경우 함수 ( )는 에 있습니다 . 기계 출력 및 입력 에서 기계는 출력을 생성하지 않습니다 (/ 거부 / 말 "아니오"/ 어구를 표현하려는 경우).f:D→Σ∗D⊆Σ∗PFx∈Df(x)x∉D
FNP 는 "함수 문제"의 클래스입니다 (함수가 아닌). 또한 를 "관계형 클래스"라고 부르지 만, 실제로이를 설명하기 위해 사용하는 단어는 나중에 명확하게 설명해야하므로이 정의의 일부가 아닙니다. 이진 관계 에는 관련 "함수 문제"가 있습니다. 기능 문제는 무엇입니까? 언어 / 기능 / 관계에 대해 내가하는 방식에 대한 명확한 수학적 정의가 없습니다. 오히려,이 유효한 해결책이 무엇으로 정의 같습니다 연관된 기능 문제 유효한 솔루션 임의의 (잠재적 부분) 함수 되도록 경우FNPR⊆Σ∗×Σ∗Rf(∃y)[R(x,y)]f 는 그러한 출력 하고, 그렇지 않으면 는 출력하지 않습니다. 는 관계 과 관련된 함수 문제의 클래스로 (쌍의 언어로 간주 될 때)이며 p 균형을 이룹니다. 따라서 는 함수의 클래스 나 언어의 클래스가 아니라 "함수 문제"의 클래스입니다. 여기서 "문제"는 대략 문제 해결의 의미로 정의됩니다.yfFNPRR∈PFNP
TFNP 다음 함수 문제의 클래스 의 관계에 의해 규정 - 예 - 상술 한 바와 같이 의 모든 위해 이러한 의미에서, 토탈 존재 되도록 .FNPRRxyR(x,y)
"모든 ( ) 함수 문제에 ( 위의 설명에 따라 가있는 경우 이 문맥에서 ... "는 다음과 같이 의 정의 2를 사용합니다 .FNPTFNPPFFPFP
- FP (정의 2)는 다중 시간 솔루션이있는 의 함수 문제 클래스입니다 . 대해 유효한 가 아닌 특수 문자열 을 선택하고 그렇지 않으면 유효한 가 없을 때 함수 출력 가짐 으로써 솔루션 (= function)이 총계라고 가정 할 수 있습니다 . (필요한 경우 모든 앞에 1을 관계 을 수정할 수 있습니다. 그런 다음 을 문자열 0으로 사용하면 관련된 복잡성이 변경되지 않습니다.)FNPy0yxy0yRyy0
다음은 이러한 다양한 정의가 (정의 2, 와 비교되는 맥락에서 가정하기 때문에 정의해야 함)와 서로 관련되는 방법 입니다 에 . (def 2)는 (def 1)와 같습니다.FNP⊆FPFNPNPMV⊆cPFTFNP⊆FPNPMVt⊆cFP